我对Redux还是很陌生,我正在使用react-redux
软件包并尝试实现一个简单的功能(尽管我知道这可以通过本地状态来处理),无论您在输入中键入什么显示在下面的<p></p>
标签之间。
下面是代码:
我对第62行持怀疑态度,我访问最新状态以进行打印的方式是否正确?
答案 0 :(得分:1)
顺便说一句好开始。我认为您在状态部分有些复杂。我为您修改了它,还删除了bind
关键字,如果您使用最新的JS lang规范,我觉得不需要。
我使用Object.assign
只是为了防止状态对象发生突变。通常可以通过使用ImmutableJS (请阅读文档)
// Reducer.
const updateReducer = (state = {text:''}, action) => {
switch (action.type) {
case UPDATE_TEXT:
return Object.assign({}, state, { text: action.text });
default:
return state;
}
};
const mapStateToProps = state => {
return {
text: state.text
};
};
和渲染方法:
render() {
return (
<div>
<input type="text" onChange={(...arg) => this.changeText(...arg)} />
<p>{this.props.text}</p>
</div>
);
}
您的初始代码有什么问题?
您将每个按键的所有文本以及更新和增长的文本存储在数组中。在渲染时,仅显示最后一个(在数组中创建了不需要的副本,从未使用过),并省略了其他数组值。相反,只需将旧值替换为当前传入的值即可。
您的分叉代码here
快乐编码!