我有建立到Select
部件从Ant Design
https://ant.design/components/select/操作内发送的元数据到减速器在终极版
<SomeComponent
onSelect = { this.props.handleSelect }
onDeselect = { this.props.handleDeselect }
selectionList = { valuesList }
value = { values }/>
onSelect
组件triggeres动作this.props.handleSelect
export function handleSelect(value) {
return dispatch => {
dispatch(actionCreator(HANDLE_SELECT, value));
}
}
即动作进入reducer
case HANDLE_SELECT: {
const newValues = value_select(state, action);
return {
...state,
find: {
...state.a,
values: newValues
}
}
}
最后,value_select
被称为做所有的魔法
export const value_select = function(state, action) {
...
const newData = {
XYZ: action.payload
}
return newData
}
这使我想起了我的问题。 是否可以发送更多metadata
的action
?想象一下,我多次使用组件<SomeComponent.../>
。我不知道在触发onSelect
时哪个渲染组件触发了action
。 如果我想在后面处理value_select = function(state, action) {...
中的信息,我想知道哪个component
导致action
正确处理我的数据。我需要动态地将XYZ
设置为value_select()
,具体取决于哪个<SomeComponent.../>
导致了action
。 action.payload
只给我value
在<SomeComponent.../>
保存的内容,仅此而已。 有没有办法发送更多的信息onSelect
或者是不好的做法,我需要每个component <SomeComponent.../>
action
呢?
感谢您的提示。你写这些完全取决于我“我把什么放在行动/减速器中”。我仍然无法摆脱困境的是,我将如何获取handleSelect(value)的附加信息,具体取决于点击的内容。这必须发生在组件的某个地方,因为我有这个组件多次。因此,组件必须提供信息并单击它(每个组件的唯一信息) – Stophface
如果组件中有多个实例都试图使用相同的动作创建者,那么这些组件传递给哪些参数仍然由您决定行动创造者。例如,'onClick = {()=> handleSelect(value,someId)}'。然后,修改动作创建者以将该ID包含在动作中。 – markerikson