なぜstate.setが定義されていないのか教えてください。Redux state.setの結果が未定義です
const initialState = fromJS({
description: 'default_description',
});
function helpReducer(state = initialState, action) {
switch (action.type) {
case DEFAULT_ACTION:
return state;
case CHANGE_DESCRIPTION:
console.log('Change Description reducer action.data: '+action.data); //results in string say foo
console.log('state: '+state); //results in valid state on first call
return state
.set('description':action.data);
default:
return state;
}
}
私はアクションCHANGE_DESCRIPTION、state = default_description
を呼び出して初めて:
私は減速とても似ています。
state.set
state.description = undefined
を呼び出した後。
私は前にstate.setを使用しましたが、なぜ今失敗しているのかわかりません。
アクションがそうのような子コンポーネントによって呼び出されている:デモンストレーションのために
export class FOO extends React.PureComponent {
constructor(props){
super(props);
}
render() {
return (
<div>
<FOOForm onChange={this.props.changeDescription} />
</div>
);
}
}
function mapDispatchToProps(dispatch) {
return {
dispatch,
changeDescription: (e) => dispatch(changeDescription(e.target.value))
};
}
Fooのフォーム::
function fooForm(props){
return <FormControl onChange={props.onChange} componentClass="textarea" />;
}
残りのコードは表示されませんが、action.dataは定義されていないと思います。スイッチの前にconsole.logの 'action.data'を入れて、あなたが望むものを保持しているかどうかを確認できます/ –
Action.dataが明確に定義されています。私はconsole.logときに毎回正しい値を取得します。 – Turtle
なぜ '' 'return action.data'''をしないのですか?減速機の状態が自動的に変更されます。ドキュメントのようにhttp://redux.js.org/docs/basics/Reducers.html – Bonanza