React-Native回调函数/方法不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React-Native回调函数/方法不起作用相关的知识,希望对你有一定的参考价值。

我阅读了几个教程,但我不明白为什么传递回调函数和回调方法都不起作用。

当我在console.log中时,回调函数是未定义的。

请帮忙。

import React, { Component } from 'react';
import { FlatList } from 'react-native';
import { RecipeCard } from '../RecipeCard/RecipeCard';
import recipeData from '../../config/SampleDataRecipeList.json';

class RecipeList extends Component {
  constructor(props) {
    super(props);
    this.handlePress = this.handlePress.bind(this);
  }
  state = {};

  handlePress() {
    console.log('Handle Press');
  }

  handleClick = () => {
    console.log('Handle Click');
  };

  renderItem({ item }) {
    return (
      <RecipeCard
        title={item.title}
        persons={item.persons}
        time={item.time}
        uri={item.uri}
        onPress={this.handlePress}
      />
    );
  }

  render() {
    return (
      <FlatList
        data={recipeData}
        renderItem={this.renderItem}
        keyExtractor={(item, index) => index.toString()}
      />
    );
  }
}

export { RecipeList };
答案

我建议使用像下面这样的箭头函数:

  renderItem = item => {
    return (
      <RecipeCard
        title={item.title}
        persons={item.persons}
        time={item.time}
        uri={item.uri}
        onPress={this.handlePress}
      />
    );
另一答案

解决方案是更改为在构造函数中绑定renderItem或将其更改为胖箭头函数

renderItem = ( ) => {...}

以上是关于React-Native回调函数/方法不起作用的主要内容,如果未能解决你的问题,请参考以下文章

jquery $.post 在加载回调函数中不起作用?

路由更改在 Promise 回调函数中不起作用

JSONP回调不起作用

Hot Reload 在 react-native android 中不起作用

Swift 回调不起作用

STOMP 网络套接字回调不起作用