如何通过响应本机导航传递参数

时间:2020-09-15 17:28:58

标签: reactjs react-native

Index.js

<View>
  <TouchableOpacity
    onPress={() => this.props.navigation.navigate('Product', { select: 1 })}
  >
    <Text>navigate</Text>
  </TouchableOpacity>
  <TouchableOpacity
    onPress={() => this.props.navigation.push('Product', { select: 1 })}
  >
    <Text>push</Text>
  </TouchableOpacity>
</View>

Product.js

componentDidMount() {
  console.log(this.props.navigation.state.params);
  // when navigate, returns null
  // when push, returns Object { "select": 1 }
}

从索引导航到产品时,我想传递一个参数:select。

当我使用navigation.push()时,产品会收到参数。

但是我不想使用push,因为我不想在这里添加屏幕。

1 个答案:

答案 0 :(得分:0)

我知道这不是您要找的答案,但我认为您可以考虑一下。

将Product.js作为Index.js的一部分怎么样?如下:

<View>
 { !productVisibilty ? <TouchableOpacity
     onPress={() => this.setState({productVisibality: true})}}
  >
    <Text>navigate</Text>
  </TouchableOpacity>
  <TouchableOpacity
    onPress={() => this.props.navigation.push('Product', { select: 1 })}
  >
    <Text>push</Text>
  </TouchableOpacity>
: <Product />
</View>