我对Redux并不陌生,我正在使用react-redux包并尝试实现一个简单的功能(尽管我知道这可以通过本地状态来处理),在此输入的内容应显示在标记。下面是代码:我对第62行表示怀疑,这是我访问最新状态以进行打印的方式,这是正确的方法吗? (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 好的开始。我认为您在状态部分有些复杂。我为您修改了它,还删除了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编码愉快! (adsbygoogle = window.adsbygoogle || []).push({});
07-24 18:06
查看更多