【问题标题】:ReferenceError: Can't find variable: loadMoviesLikedDetails (React Native)ReferenceError:找不到变量:loadMoviesLikedDetails(React Native)
【发布时间】:2019-11-18 15:32:14
【问题描述】:

我是 React Native 的新手,我在这个项目中遇到了 ReferenceError 错误, 当我进入一个显示用户喜欢的所有电影的页面时,我有这个:

ReferenceError: ReferenceError: Can't find variable: loadMoviesLikedDetails

这是组件的一部分代码:

class LikedScreen extends Component {
  constructor(props) {
    super(props);
    this.state = {
      moviesLikedDetails: []
    };
  }

  componentDidMount() {
    loadMoviesLikedDetails(); <-- SEEMS LIKE THIS CREATES THE ERROR
  }

  loadMoviesLikedDetails() {
    this.props.likedFilms.forEach(async movie => {
      const dataDetail = axios.get(
        `https://api.themoviedb.org/3/movie/${movie}?api_key=${API_KEY}&language=fr`
      );
      this.setState({
        moviesLikedDetails: [...this.state.moviesLikedDetails, dataDetail.data]
      });
    });
  }

  render() {
      return (
        <View style={styles.container}>
            {this.state.moviesLikedDetails.map(movie => (
              <View style={{ display: "flex", flex: "wrap", width: "25%" }}>
                {movie.id}
              </View>
            ))}
        </View>
      );
  }
}

看起来错误来自componentDidMount中的函数执行...

【问题讨论】:

    标签: reactjs react-native


    【解决方案1】:

    您在componentDidUpdate 中缺少this.loadMoviesLikedDetails()

    此外,您可以通过这种方式定义您的状态,而不是 constructor

      state = {
        moviesLikedDetails: []
      }
    

    您也可以查看hooks

    【讨论】:

    • omg ty,我曾经使用功能组件进行编码,所以我忘记了我们需要“this”的类!!!!
    猜你喜欢
    • 2021-10-10
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    相关资源
    最近更新 更多