首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError: navigation.getParam不是一个函数。(在“navigation.getParam(‘name’)”中,“navigation.getParam”未定义)

TypeError: navigation.getParam不是一个函数。(在“navigation.getParam(‘name’)”中,“navigation.getParam”未定义)
EN

Stack Overflow用户
提问于 2020-11-20 14:57:42
回答 1查看 916关注 0票数 1

我正在嵌套屏幕,并将道具传递给屏幕,如标题标题和json的呈现。今天早些时候,一切正常,但现在它给了我getParams的错误。

HomeStack.js,在标题中,我通过导航到这个标题的屏幕上的FlatList呈现得到标题。

代码语言:javascript
复制
        <Screen
          name='errorHP'
          component={errorHP}
          options={{
            headerTitle: () => <Header navigation={navigation} title={navigation.getParam('name')} />,
            headerTitleAlign: 'center',}}
        /> 

HP.js,在这里,平面列表呈现并将呈现到页面errorHP。

代码语言:javascript
复制
<FlatList data={filteredSearch} keyExtractor={(item) => item.key} renderItem={({item}) => (
                <TouchableOpacity onPress={() => navigation.navigate('errorHP', item)}>
                    <Card>
                        <Text style={globalStyles.titleText}> {item.name} </Text>
                    </Card>
                </TouchableOpacity>
            )} />

errorHP.js,这里列出了错误,单击之后,将再次传递params到一个新页面,该页面将获取错误详细信息。

代码语言:javascript
复制
export default function errorHP ({navigation}) {
    const data = navigation.getParam('errors');
    const errors = Object.keys(data);
    return (
        <View style={globalStyles.container}>
            <FlatList data={errors} renderItem={({item}) => (
                <TouchableOpacity>
                    <Card>
                        <Text style={globalStyles.titleText}> {item} </Text>
                    </Card>
                </TouchableOpacity>
            )} />

我一直在胡闹,仍然解决不了这个问题。感谢您的关注!

EN

回答 1

Stack Overflow用户

发布于 2020-11-20 16:10:20

您需要从route道具中获得params:

代码语言:javascript
复制
export default function errorHP ({navigation, route}) {
  const data = route.params.errors;

  // whatever
}

代码语言:javascript
复制
<Screen
  name="errorHP"
  component={errorHP}
  options={({ route, navigation }) => ({
    headerTitle: () => (
      <Header navigation={navigation} title={route.params.name} />
    ),
    headerTitleAlign: 'center',
  })}
/>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64931712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档