使用通过函数中的反应导航传递的参数

问题描述 投票:0回答:1

问题

我正在尝试使用我传递的参数,并在函数内部进行反应导航。我定义这样的参数:

render() {
  const { params } = this.props.navigation.state; 
  return (

每当我尝试在函数中使用参数时,例如params.userID,我得到一个错误,说“找不到变量参数”。当我尝试使用时

this.setState({passUserID: this.props.navigation.state.userID})

只返回null。我会将参数传递给函数,但我从其他函数中调用函数。我一直在使用的不切实际的解决方案是让用户按下一个按钮,该按钮定义了一系列包含所有参数的状态:

<Button
    onPress={() =>{
    this.setState({passKey: params.postKey})
    this.setState({passUserID: params.userID})
    this.setState({passContent: params.postContent})
    this.setState({firebaseItems:''});
    this.setState({fontLoaded:true});
    }}
    title="Press to load"
    color="#ff0037"
  />

但这对用户来说是不切实际的,因为每次他们想要加载这个屏幕时他们都必须按下按钮。

那么如何在函数内部使用参数,或者我可以尝试其他解决方案?

class Feed extends React.Component {
        //...
        //Where I send the parameters and navigate to the other screen
        <TouchableWithoutFeedback onPress={() => {
     this.props.navigation.navigate(
    'CommentScreen',{postKey: item.key, postContent: item.content, passNameID: item.nameID, userID: item.userID}
    )
        }}>
        //...
                        </TouchableWithoutFeedback>
        //...

And then later:

        class Comments extends React.Component {
    //...

    render() {
    //where I receive the parameters
      const { params } = this.props.navigation.state;

      return (

//...
//How I use parameters
    <Text>
      {params && params.postContent}
    </Text>
javascript react-native react-navigation
1个回答
0
投票

paramsrender()宣布。如果要在另一个函数中使用值,可以使用this.props.navigation.state

注意:当您想要设置多个状态值时,您可以在一次调用this.setState()时完成所有操作:

this.setState({
    passKey: params.postKey,
    passUserID: params.userID,
    passContent: params.postContent,
    firebaseItems:'',
    fontLoaded:true
});
© www.soinside.com 2019 - 2024. All rights reserved.