Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用重选将道具传递给包装在容器中的子组件?_Javascript_Reactjs_Redux_Reselect - Fatal编程技术网

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])