识别reducer中的React组件?

时间:2017-09-16 13:12:24

标签: javascript reactjs typescript react-redux

说我有一个反应组件,它会像这样接受一个id道具:

<Test id=3/>

在相应的缩减器功能中,如何根据ID识别我正在使用哪个组件?

测试组件在其prop中也有一些函数,如果这会影响任何内容,则会将其导出为默认值。

2 个答案:

答案 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,则它可以访问新状态。