Javascript 如何使用重选将道具传递给包装在容器中的子组件?
我试图将道具从父组件传递到包装在容器中的子组件。我想使用选择器来使用作为道具传递的字符串,以便它可以选择父数据的子状态 目前,数据的结构如下所示:Javascript 如何使用重选将道具传递给包装在容器中的子组件?,javascript,reactjs,redux,reselect,Javascript,Reactjs,Redux,Reselect,我试图将道具从父组件传递到包装在容器中的子组件。我想使用选择器来使用作为道具传递的字符串,以便它可以选择父数据的子状态 目前,数据的结构如下所示: Industry: { Data: { coolants: [array], machines: [array], tools: [array] } } 使用选择器,我可以为所有行业数据进行选择,但我尝试使用选择器仅为“冷却液”进行选择 在我的父组件中,我传递道具以选择“冷却液”: ChartContainer.js: const
Industry: {
Data: {
coolants: [array],
machines: [array],
tools: [array]
}
}
使用选择器,我可以为所有行业数据进行选择,但我尝试使用选择器仅为“冷却液”进行选择
在我的父组件中,我传递道具以选择“冷却液”:
ChartContainer.js:
const mapStateToProps = createStructuredSelector({
data: makeSelectData(),
})
const withConnect = connect(mapStateToProps, null)
const withReducer = injectReducer({ key: 'industry', reducer })
export default compose (
withReducer,
withConnect
)(ChartComponent);
选择器.js
const selectDomain = () => state => state.get('industry')
const makeSelectData = () => createSelector(
selectDomain(),
substate => substate.toJS()
)
export {
makeSelectData
}
你需要两件事:
在选择器中使用组件道具的类别值;
使用此道具可以在不可变的数据结构中获得嵌套值;
可能的变化是:
const selectDomain = () => (state, props) => state.getIn(['industry', props.category])