【问题标题】:Passing item.name in StackNavigator React Native在 StackNavigator React Native 中传递 item.name
【发布时间】:2020-04-07 17:07:25
【问题描述】:

所以我有一个使用 Fetch api 显示名称的 flatList,

<FlatList
          data={this.state.data}
          keyExtractor={item => item.id}
          renderItem={({item}) => <TouchableOpacity onPress {()=>NavigationService.navigate('Med') }>

      <Text> {item.name}</Text>)}

单击其中一个名称时,我导航到另一个屏幕,我必须在其中使用“item.name”,我如何传递这个参数。在那个屏幕代码上,我正在使用一个类,而我没有想使用一个函数。

class search extends React.Component {

    constructor(props){
        super(props);
    }.....

提前致谢

【问题讨论】:

标签: javascript reactjs react-native ecmascript-6


【解决方案1】:

检查希望它会工作 现在这里是在此导航操作中传递您的 item.name

  <FlatList
              data={this.state.data}
              keyExtractor={item => item.id}
              renderItem={({item}) => <TouchableOpacity onPress {()=>NavigationService.navigate(`${item.name}`) }>

          <Text> {item.name}</Text>)}

【讨论】:

  • 很遗憾没有,在另一个屏幕上找不到变量:项目
  • 哦,没问题'
  • 那么你能告诉我你想在哪个屏幕上显示这个“项目”,然后我就知道了
  • 查看描述,当我导航到屏幕 Med (onPress {()=>NavigationService.navigate('Med')) 我将在这样的函数中使用参数'bringName(item.名称)'
  • 嗨,我很清楚,但希望它的作品:navigation.navigate('Med',{ bringName: somaData }) //////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////需要显示名称 const paramName = this.props.navigation.state.params.bringName 谢谢
【解决方案2】:

由于您的NavigationService 使用以下参数处理navigate 函数,

export function navigate(name, params) {
  navigationRef.current?.navigate(name, params);
}

您可以将参数传递为

<TouchableOpacity onPress {() => NavigationService.navigate('Med', {name: item.name})}>

导航到特定屏幕后,您可以访问 name 参数为

this.props.route.params.name

希望这对您有所帮助。如有疑问,请随意。

【讨论】:

  • 我试了一下,得到了这个错误,' typeError: undefined is not an object(this.props.navigation.route.params.name),有什么问题吗?谢谢跨度>
  • @AymenAymen 应该是this.props.route.params.name
  • 还是同样的错误,我应该先声明一些东西吗?
  • @AymenAymen 你得到的错误是什么?
  • typeError: undefined is not an object(this.props.route.params.name)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-17
  • 1970-01-01
  • 2019-05-08
  • 1970-01-01
  • 2018-06-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多