【问题标题】:React Native ListView not selectable after 10 items in listReact Native ListView 在列表中的 10 个项目后不可选择
【发布时间】:2017-03-24 15:54:17
【问题描述】:

我创建了一个包含可选行的列表视图,但是当行数超过 10 时,选择停止工作。

这里只添加了 9 个项目:

// Individual row function
row(data, secId, rowId) {
  // place in queue
  let place = Number(rowId) + 1;

  // set the selected queuer to show its page
  let setSelectedQueuer = () => {
    this.setState({
      selectedKey: data._key,
      editName: data.name,
      editParty: data.partySize,
      editPhone: data.phoneNumber,
      editNotes: data.notes
    });
  }

  return (
    <Queuer
      key={data._key}
      queuerKey={data._key}
      place={place}
      name={data.name}
      selectedKey={this.state.selectedKey}
      createdAt={data.createdAt}
      partySize={data.partySize}
      onPress={setSelectedQueuer}
    />
  );
}

这会在创建时设置每个行键,并在单击时更改状态,然后在每行单独的行项目上进行比较。

let isSelected = () => {
  if (this.props.queuerKey === this.props.selectedKey) {
    return Colors.info;
  } else {
    return 'white';
  }
}

在添加第十个项目之前工作得很好,然后它就停止了。

单击其他行项目,但样式没有改变。添加第 10 项时发生了一些奇怪的事情。

【问题讨论】:

  • 请提供更多有趣的代码,并将以下代码移出行函数,这会降低您的应用程序的性能。 "让 setSelectedQueuer = () => { this.setState({ selectedKey: data._key, editName: data.name, editParty: data.partySize, editPhone: data.phoneNumber, editNotes: data.notes }); } "跨度>

标签: listview reactjs react-native


【解决方案1】:

解决了!我没有在我的列表视图上设置initialListSizeinitialListSize 默认为 10 并在达到该大小后停止重新渲染。

这有助于: React Native ListView doesn't rerender for large data

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 2018-01-06
    • 2015-04-06
    • 1970-01-01
    相关资源
    最近更新 更多