请问:react如何给通过属性传递的组件 传属性

render() {
    const Item =this.props.renderItem //这是传递过来的组件
    
    return (
      <View
        style={{ backgroundColor: 'orange', flex: 1, position: 'relative' }}
      >
        <View
          {...this._panResponder.panHandlers}
          style={{ backgroundColor: 'red' }}  //现在是通过父组件
        >
          {this.props.renderItem} // 我想直接向这里面传属性
        </View>

      </View>
    )
  }
阅读 3.7k
2 个回答

用render props实现

官方文档
//父组件
render() {
    const props = Object.assign(
      {...this._panResponder.panHandlers},
      {style :{ backgroundColor: 'red'}}
    )
    return (
      <View
        style={{ backgroundColor: 'orange'... }}
      >
        {this.props.renderItem(props)}
      </View>
    )
  }
子组件
<Gesture
    renderItem={
        props => (
            <Image
                source={{ uri: 'https:xxx.jpg' }}
                {...props}
            />
        )
    }
/>

把父组件中的 props.renderItem 换成 props.children 来注入子组件

<Father fatherProps={}><Child childProps={/* 这里传入你想直接传给子组件的 props */}></Father>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进