Wil*_*iam 2 javascript reactjs react-redux
我有一个基本的待办事项清单。待办事项列表的待办事项输入字段有一个 onChange 事件,该事件会触发一个动作并将 event.target.value 发送到减速器并将用户键入的每个字符存储到商店对象的属性中。
当用户提交表单时,我想获取以前通过 onChange 事件存储的数据,然后我想将它放在 store 对象的新属性上。
如何获取先前从商店输入的数据并将其拉入不同的减速器?
在我见过的所有示例中,reducer 都以“初始状态”开始。我不想要那个,我想要用户输入的先前状态。
下面是代码的 CodeSandbox 版本(出于某种原因,右侧的橙色-米色选项卡需要向左切换为蓝色才能呈现表单。如果您不这样做,它将无法工作)。
问问自己您是否正确构建了减速器。如果 a 和 b 不相互独立,为什么它们是分开的减速器?
好吧,如果我们谈论正确构造减速器,cachedInput并且todoList应该住在单个减速器中。无需创建另一个减速器。另外我猜你需要一次获取输入值(当用户点击提交时)并将其发送到存储。
如果你仍然想创建单独的减速器,那么你可以按照下面给出的方法:
对如何访问或共享已存储在减速器中的数据的回答?
不要使用 combineReducers。
例子
替换此代码
export const a = combineReducers({
cachInput,
newTodo
});
Run Code Online (Sandbox Code Playgroud)
和
export default (state = {}, action) => {
return {
cachInput: cachInput(state.app, action, state),
newTodo: newTodo(state.posts, action, state),
};
};
Run Code Online (Sandbox Code Playgroud)
减速器会像
const reducer = (state = initialState, action, root) => {....}
Run Code Online (Sandbox Code Playgroud)
你可以从 root
| 归档时间: |
|
| 查看次数: |
3641 次 |
| 最近记录: |