操纵兄弟组件的状态

时间:2016-03-04 01:46:03

标签: react-native

text

是否可以像这样修改兄弟姐妹的状态?或者我应该将<div>属性移到组件A?

1 个答案:

答案 0 :(得分:3)

当您需要在组件之间共享状态时,将该状态移至其共同父级并通过道具将其下移。

这是我所得到的要点。显然,你需要传递实际值。

class ComponentA extends React.Component{
  constructor(props){
    super(props);

    this.state = {
      text: '',
    }
  }

  render(){
    return (
      <View>
        <ComponentB text={this.state.text}>
        <ComponentC onPress={(value) => this.setState({text: value})}>
      </View>
    )
  }
}

class ComponentB extends React.Component{
  render(){
    return(
      <Text>{this.props.text}</Text>
    )
  }
}

class ComponentC extends React.Component{
  render(){
    return(
      <View>
        <TouchableHighlight onPress={this.props.onPress} />
      </View>
    )
  }
}