过滤ListView React-Native

时间:2016-01-25 23:17:52

标签: listview react-native

我正在尝试在react-native中过滤(使用fuzzy包)ListView。我的代码是这样的:

getInitialState: function() {
  return {
    dataSource: new ListView.DataSource({
      rowHasChanged: (row1, row2) => row1 !== row2
    })
  }
},

componentDidMount: function() {
  Contacts.registerChanges((contacts) => {
    this.setContacts(contacts, this.props.filter)
  })
  Contacts.loadContacts()
},

setContacts: function(contacts, filter) {
  var filteredContacts = fuzzy.filter(
    filter,
    contacts,
    options)

  this.setState({
    dataSource: this.state.dataSource.cloneWithRows(filteredContacts)
  })
}

componentWillReceiveProps: function(props){
  this.setContacts(Contacts.getContacts(), props.filter)
},

render: function() {
  return (
    <ListView
      dataSource={this.state.dataSource}
      renderRow={(rowData) => <ContactItem contact={rowData.original} />}
      style={styles.container}
    />
  )
}

当我运行代码时,一切正常,直到我尝试更改过滤器值。当过滤器值更改时,我收到以下错误:

  

尝试在空对象引用上读取字段'int.android.view.ViewGroup $ LayoutParams.width'。

我不知道发生了什么。我在Android中运行它。

1 个答案:

答案 0 :(得分:1)