【问题标题】:Passing Down React Native State from ListView从 ListView 传递 React Native 状态
【发布时间】:2016-02-03 21:29:05
【问题描述】:

我在从我的 React Native ListView 传递状态时遇到问题。

我目前正在尝试扩展此处找到的教程的功能。 https://facebook.github.io/react-native/docs/tutorial.html#content

我想添加按下任何电影并获取更多信息的功能。

这是正在渲染的 ListView

    renderMovie(movie) {
        this.movie = movie;
        return (
          <View
          style={styles.container}
          >
            <Image
              source={{uri: movie.posters.thumbnail}}
              style={styles.thumbnail}
            />
            <TouchableHighlight style={styles.rightContainer} onPress={this._onPressMovie.bind(this)}>
              <View>
                <Text style={styles.title}>{movie.title}</Text>
                <Text style={styles.year}>{movie.year}</Text>
              </View>
            </TouchableHighlight>
          </View>
        );
      }

onPress 发生时会触发

    _onPressMovie(){
        this.setState({ showMovieInfo: !this.state.showMovieInfo, movie: this.movie});
    }

this.state.showMovieInfo 为真时,调用前面的 if 语句

    render() {

        if(!this.state.loaded) {
          return this.renderLoadingView();
        }

        if(this.state.showMovieInfo) {
          return this.renderMovieInfo()
        }

        return (
          <ListView
            dataSource={this.state.dataSource}
            renderRow={this.renderMovie.bind(this)}
            style={styles.listView}/>
        );
      };

不是传递被按下的电影信息,而是传递最后一个被渲染到这里的电影。

    renderMovieInfo() {
        return (
          <TouchableHighlight style={styles.container} onPress={this._onPressMovieInfo.bind(this)}>
            <View>
              <MovieInfo {...this.state}/>
            </View>
          </TouchableHighlight>
          );
    }

【问题讨论】:

    标签: javascript mobile reactjs react-native


    【解决方案1】:

    搞定了!在 onPress 中我需要这样称呼它。

    onPress ={() => this.onPressMovie(movie)}
    

    拿走这个

    this.movie = movie;
    

    【讨论】:

      猜你喜欢
      • 2020-04-24
      • 2020-09-09
      • 2017-02-23
      • 2018-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 2017-12-06
      相关资源
      最近更新 更多