说我有一个反应组件,它会像这样接受一个id道具:
<Test id=3/>
在相应的缩减器功能中,如何根据ID识别我正在使用哪个组件?
测试组件在其prop中也有一些函数,如果这会影响任何内容,则会将其导出为默认值。
答案 0 :(得分:1)
Reducers是用于更改存储和观察订户(组件)更改的纯函数。您不能也不应该使用reducer中的组件。
答案 1 :(得分:1)
减速器并不是,也不应该对组件一无所知
它们是纯粹的功能,它采取行动并返回下一个状态
例如,如果我们发送了这样的动作:
{type: "ANSWER_UPVOTED", id: '123456'}
然后我们可能有一个处理此操作的reducer:
const upvotesReducer = (state = {}, action) => {
switch (action.type) {
case "ANSWER_UPVOTED": {
const currentAnswer = state.find(a => a.id == action.id);
return {
...currentAnswer,
votes: currentAnswer.numOfVotes + 1
}
}
default: return state;
}
}
现在,如果您的组件已连接到redux
,则它可以访问新状态。