【问题标题】:How to pass state to component React Native如何将状态传递给组件 React Native
【发布时间】:2018-01-15 03:54:27
【问题描述】:

我是 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>

第二个组件,“问题1”

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>

提前非常感谢

【问题讨论】:

  • 你从哪里得到name2 state ?因为我只是在你的状态下看到name :)

标签: reactjs react-native state navigator


【解决方案1】:

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

questions组件中,

状态应设置为:

this.state={
  stupidCount: 1,
}

onPress 应该被当作

onPress={() =&gt; navigate('Question1', { stupidCount: this.state.stupidCount } )}

在 Questions2 组件中,您可以通过以下方式访问该值:

this.props.navigation.state.params.stupidCount

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-26
    • 2019-07-17
    • 2019-05-30
    • 2019-01-20
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    相关资源
    最近更新 更多