【问题标题】:How to pass prop to component from array of components in React如何将道具从React中的组件数组传递给组件
【发布时间】:2021-10-08 14:29:08
【问题描述】:

假设你有一个组件数组:

var my_array = [ <SomeComponent1 textcolor={defaultFontColor} />, <MyComponent2 textcolor={defaultFontColor} />}, <SomeComponent3 textcolor={defaultFontColor} />}, ...]

并且您想遍历数组,但也将 props 传递给组件(在示例中,AComponent):

my_array.map(AComponent => {
      return (
        <View>
          {AComponent}
        </View>
      )
})

在本例中,我如何将道具传递给{AComponent}

【问题讨论】:

  • 如何创建组件数组?在那里传递所有必要的道具不是更容易吗?

标签: reactjs jsx


【解决方案1】:

将组件视为 json 对象

AComponent = {
   props:{
    prop1: "value for the prop1"
  }
}

所以,现在你可以传递你想要的道具了

my_array.map(AComponent => {
  AComponent.props["newProp"] = "propValue"
  return (
    <View>
      {AComponent}
    </View>
  )
})

或者,如果您希望使用在将组件推送到数组中时传递的道具,您可以直接在组件的 render() 方法中使用它们

【讨论】:

  • 当我尝试得到以下错误:“组件异常:试图分配给只读属性”
  • jsfiddle.net/7gnLv48u 尝试使用 React.cloneElement 创建组件的克隆并添加其他道具
  • 感谢 jsfiddle,非常有帮助!
猜你喜欢
  • 2021-12-07
  • 2020-04-23
  • 2020-12-19
  • 2018-08-01
  • 2018-04-25
  • 2015-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多