TypeError:使用ReactNative传递参数时,this.props.navigation.getParam不是函数

时间:2020-04-09 17:15:05

标签: javascript react-native

通过getParam方法访问参数时出现错误,如下所示

    const source = this.props.navigation.getParam("source","0")
    const doFollow = this.props.navigation.getParam("doFollow","")

我已使用以下方法传递了参数

this.props.navigation.navigate('Details', {otherParam:"anything"})

6 个答案:

答案 0 :(得分:5)

这取决于您使用的react-navigation版本。

在v4中

this.props.navigation.getParam('source')

在v5中

this.props.route.params.source

答案 1 :(得分:1)

它可能不完全适合您的示例,但是我正在传递/检索这样的数据:

this.props.navigation.navigate('DisplayPage', { meetId: item.ID })

然后在接收页面上

props.navigation.state.params.meetId

答案 2 :(得分:1)

如果您使用的是最新版本的React Navigation(即5.0或更高版本)。您可以简单地使用this.props.route.params.YOUR_PARAMETER_KEY传递参数

答案 3 :(得分:1)

如果要在React-Native中将数据(例如JSON)从一个类发送到另一类。

this.props.navigation.navigate('Detail Screen', json)

此处json是具有键值的JSON对象。例如。

    { id: 1234, name: "Dean", age: 30}

在渲染器的接收器类/导航类中

     const name = this.props.route.params.name;
     const age = this.props.route.params.age;

注意:请确保将数据作为键值{key:value}

发送

答案 4 :(得分:0)

假设您使用的是最新的react-navigation。 您正在犯一个小错误。

尝试从函数中删除第二个参数。

let source = this.props.navigation.getParam("source")
let doFollow = this.props.navigation.getParam("doFollow")

if(!source) source = "0"
if(!doFollow) doFollow = ""

答案 5 :(得分:0)

function(props)
{
   props.navigation.goBack() //For navigation
   props.route.params.**source** //For params
} 

V5:

没有对象解构-->

function({navigation, route})
{
   navigation.goBack()    //FOR navigation
   route.params.**source**   //FOR params
} 

对象解构-->

{{1}}