如何在组件之间传递数据?

时间:2019-02-20 14:00:45

标签: react-native

我想将数据传递到另一个组件状态。但我不想打开该页面,我的意思是我不想使用导航。

我在该页面上使用componenwillmount,但是当数据更改时,componenmount将不再起作用。

我这样通过。

<NewPage data={this.state.collection} />

这是第1页:

return (

    <View style= {styles.firstView}> 
         <View style={{flex: 1.5}}>
             <Header color1 = {Blue.length}  color2 = {Yellow.length} navigation={this.props.navigation}  setData= {this.handleSetData}/>
         </View >

             <View style={{flex: 0.5, backgroundColor:'#f2f2f2'}}>
                 <Bar />
            </View>

        <View style={{flex: 9}}>
            {/* <ScrollView>
             {this.renderall()}
            </ScrollView> */}

            <NewPage data= {this.state.collection}/>


        </View>

        <View style={styles.footerStyle}>
          <Footer />
        </View>  

    </View>

这是NewPage:

export default class NewPage extends Component {

  constructor(props) {
    super(props);
    this.state= {

    fromPage1: [],
    }

}

正如我每次说的那样,我想更改状态为“ frompage1”

1 个答案:

答案 0 :(得分:1)

我不太确定你在问什么。如果我说对了,我认为您正在寻找类似的东西

export default class NewPage extends Component {

  constructor(props) {
    super(props);
const {data} = props;
console.log(data); //just to make sure you are getting right set of data
    this.state= {

    fromPage1: data
    }

}

// if your props are updating try
componentWillReceiveProps(nextProps) { this.setState(fromPage1: nextProps.data)}

让我知道您是否还想要其他东西。