Reactjs 将道具传递给动态创建的组件

Reactjs 将道具传递给动态创建的组件,reactjs,redux,components,Reactjs,Redux,Components,我动态地创建了一个组件,并希望将一些道具传递给它,如下所示 import ResouceUsageGadget from './ResouceUsage/ResouceUsageGadget' constructor() { ... this.gadgetStateMap = { "ResouceUsageGadget":{"name":"ResouceUsageGadget", "type":ResouceUsageGadget, "state":"

我动态地创建了一个组件,并希望将一些道具传递给它,如下所示

import ResouceUsageGadget from './ResouceUsage/ResouceUsageGadget'
  constructor() {
    ...
    this.gadgetStateMap = {
            "ResouceUsageGadget":{"name":"ResouceUsageGadget", "type":ResouceUsageGadget, "state":"normal"}
    }
  }
...
render(){
  let aa = this.gadgetStateMap["ResouceUsageGadget"].type
  return (
     <aa gadgets={this.props.gadgets}/>
  )
}

const DashboardContainer = connect(
          store => {
                return {
                    gadgets: store.DashboardReducer.gadgets
                };
              }
            )(_DashboardContainer);
export default DashboardContainer
从“./ResourceUsage/ResourceUsageGadget”导入ResourceUsageGadget
构造函数(){
...
this.gadgetStateMap={
“ResourceUsageGadget”:{“名称”:“ResourceUsageGadget”,“类型”:ResourceUsageGadget,“状态”:“正常”}
}
}
...
render(){
设aa=this.gadgetStateMap[“ResourceUsageGadget”].type
返回(
)
}
const DashboardContainer=连接(
商店=>{
返回{
小工具:store.DashboardReducer.gadgets
};
}
)(_仪表盘容器);
导出默认仪表板容器
我得到一个警告:

警告:标签上的未知道具
小工具
。从元件上拆下此道具。
在aa中(由_DashboardContainer创建)
在div中(由_DashboardContainer创建)
在div中(由_DashboardContainer创建)
在_仪表板容器中(由Connect(_仪表板容器)创建)
in Connect(_DashboardContainer)(由_MainContainer创建)

而这个组件从未出现过

有什么问题吗?

嗯,试着这样做:

import ResouceUsageGadget from './ResouceUsage/ResouceUsageGadget'
  constructor() {
    ...
    this.gadgetStateMap = {
            "ResouceUsageGadget":{"name":"ResouceUsageGadget", "type":ResouceUsageGadget, "state":"normal"}
    }
  }
...
render(){
  let aa = React.createElement(this.gadgetStateMap["ResouceUsageGadget"].type, 
                               {'gadgets': this.props.gadgets})
  return (
     {aa}
  )
}

const DashboardContainer = connect(
          store => {
                return {
                    gadgets: store.DashboardReducer.gadgets
                };
              }
            )(_DashboardContainer);
export default DashboardContainer
组件实际上是一个html标记,与
类似,而不是您从以下位置导入的
ResourceUsageGadget

组件:

警告: 组件名称始终以大写字母开头。
例如,
表示一个DOM标记,但
表示一个组件,并且要求
欢迎
在范围内

试着改变

render(){
  let aa = this.gadgetStateMap["ResouceUsageGadget"].type
  return (
     <aa gadgets={this.props.gadgets}/>
  )
}
render(){
设aa=this.gadgetStateMap[“ResourceUsageGadget”].type
返回(
)
}
将来

render(){
设Aa=this.gadgetStateMap[“ResourceUsageGadget”].type
返回(
)
}
看看这是否有帮助

render(){
  let Aa = this.gadgetStateMap["ResouceUsageGadget"].type
  return (
     <Aa gadgets={this.props.gadgets}/>
  )
}