javascript - 从附加到 ScrollView 的组件更新 react native 中的父组件

标签 javascript react-native

我的 HomeScreen 中有 ScrollView ,其中的 measuresMeasure 组件的数组。

<ScrollView>{measures}</ScrollView>

我的 Measure 组件如下所示:

class Measure extends Component {
  render() {
    return (
      <View key={this.props.keyval}>
        <TouchableOpacity onPress={deleteItem(this.props.val.measure_id)}>
          <Text style={styles.measure}>
            ID: {this.props.val.measure_id}
          </Text>
        </TouchableOpacity>
      </View>
    );
  }
  deleteItem(id) {
    // delete item
    );
  }
}

我的问题是,如何通知父组件HomeScreen Measure已被删除以重新加载 ScrollView 项?或者也许您有更好的想法:

  1. 显示措施
  2. 删除 onPress 项中的一项
  3. 在 ScrollView 中重新加载项目

感谢任何建议

最佳答案

在你的情况下应该是这样的:

class HomeScreen extends Component {
  state = {
    measures: []
  };

  handleDelete = (id) => {
    // item was deleted
  }

  render() {
    const { measures } = this.state;

    const measuresList = measures.map(measure => (
      <Measure 
         key={measure.measure_id}
         onDelete={this.handleDelete}
         val={measure}
      />
    ));

    return (
     <ScrollView>{measuresList}</ScrollView>
    );
  }
}


class Measure extends Component {
  render() {
    return (
      <View key={this.props.keyval}>
        <TouchableOpacity onPress={deleteItem(this.props.val.measure_id)}>
          <Text style={styles.measure}>
            ID: {this.props.val.measure_id}
          </Text>
        </TouchableOpacity>
      </View>
    );
  }
  deleteItem(id) {
    const { onDelete } = this.props;
    // delete item
    onDelete(id); //will call parent method.
  }
}

关于javascript - 从附加到 ScrollView 的组件更新 react native 中的父组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60911629/

相关文章:

javascript - 在reduce 和fetch 中fs.writeFile 出现问题

javascript - 仅当文本区域中有字符时才启用提交按钮

使用 React Native 进行搜索和过滤

javascript - 如何防止屏幕滚动到 x :0, y :0 when an input loses focus?

javascript - 将行号添加到呈现的 rmarkdown html 文档的文本内容

javascript - 如何使用javascript显示和隐藏特定的div?

javascript - 创建表年

react-native React-Navigation 标题按钮 testID

react-native - react native : How to remove the current stack navigator from the navigation-stack

javascript - React Native 后台计时器永不停止