【问题标题】:react-native useNavigation invalid Hook call in a functional componentreact-native useNavigation 功能组件中的无效 Hook 调用
【发布时间】:2021-07-09 09:39:13
【问题描述】:

我尝试在我的功能组件中使用 useNavigation 挂钩,但出现此错误

我的主要组件是这样的:

const TransactionsList: React.FunctionComponent<ITransactionsListProps> = ({
  transactions,
  searchTransactions,
}) => {
  return (
    <Container>
      <DateContainer>
        <DateLabel text={I18n.t('currentAccount.dateToday')} />
      </DateContainer>
      <FlatList
        contentContainerStyle={{ flexGrow: 1, paddingBottom: 25 }}
        scrollEnabled={true}
        data={transactions || searchTransactions}
        showsVerticalScrollIndicator={false}
        keyExtractor={item => `row-${item.id}`}
        renderItem={RenderItem}
      />
    </Container>
  );
};

export default TransactionsList;

以及上面我尝试使用 useNavigation 的 RenderItem 组件:

interface IFakeTransactions {
  fisrstName: string;
  lastName: string;
  amount: string;
  co2Cost: string;
  type: string;
  status: string;
  id: string;
  side: string;
}

const RenderItem: ListRenderItem<IFakeTransactions> = ({
item
}): JSX.Element => {
const navigation = useNavigation();
  return (
    <TouchableOpacity
      onPress={() => {
      navigation.navigate('TransactionDetails')
      }}>
      <TransactionItem
        fisrstName={item.fisrstName}
        lastName={item.lastName}
        amount={item.amount}
        co2Cost={item.co2Cost}
        type={item.type}
        status={item.status}
        side={item.side}
      />
    </TouchableOpacity>
  );
};

如何使用这个钩子或导航道具?

【问题讨论】:

    标签: javascript react-native react-hooks react-navigation


    【解决方案1】:

    你需要在render中设置函数组件,而不是传递函数:

    <FlatList
            contentContainerStyle={{ flexGrow: 1, paddingBottom: 25 }}
            scrollEnabled={true}
            data={transactions || searchTransactions}
            showsVerticalScrollIndicator={false}
            keyExtractor={item => `row-${item.id}`}
            renderItem={(props)=> <RenderItem {...props} />}
          />
    

    【讨论】:

      猜你喜欢
      • 2020-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-15
      • 2021-03-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-14
      相关资源
      最近更新 更多