如何将状态传递给组件React Native

时间:2017-08-07 18:43:46

标签: reactjs react-native state navigator

我是React Native的新手,真的无法弄清楚为什么我无法将状态从一个组件传递到另一个组件

export default class questions extends Component {
constructor(props){
    super(props);
    this.state={
        name: "stupidCount",
        val: 1}            
}

render(){
    const { navigate } = this.props.navigation;
    const { name2 } = this.state;
    return(
        <View style={styles.box}>
            <TouchableOpacity onPress={() => navigate('Question1',  stupidCount={name2})} >
                <Text style={styles.h1}> Question 1 </Text>
            </TouchableOpacity>

第二部分,&#39;问题1&#39;

export default class Question2 extends Component {
render(){
    const { navigate } = this.props.navigation;
    console.log(stupidCount.val);
    return(
        <View style={styles.box}>
            <Text style={styles.h1}>Question 2 </Text>
            <Text> state test {stupidCount.val}</Text>

提前多多感谢

1 个答案:

答案 0 :(得分:5)

我认为您正在使用react-navigation。 如果是,则需要进行以下更改以访问Question2组件中stupidCount的值。

questions组件中,

状态应设置为:

this.state={
  stupidCount: 1,
}

onPress应该作为

处理

onPress={() => navigate('Question1', { stupidCount: this.state.stupidCount } )}

在Questions2组件中,您可以访问以下值:

this.props.navigation.state.params.stupidCount