有人能告诉我为什么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))
};
}
富表格演示的缘故:
function fooForm(props){
return <FormControl onChange={props.onChange} componentClass="textarea" />;
}
没有看到其余的代码,我会假设action.data是未定义的。你可以在交换机之前使用console.log'action.data'来查看它是否持有你想要的内容/ –
Action.data是明确定义的。当我console.log每次我得到正确的值。 – Turtle
为什么不只是'''返回action.data'''。它会自动改变减速器状态。就像在文档中http://redux.js.org/docs/basics/Reducers.html – Bonanza