筛选器ListView反应本机
我正在尝试在react native中筛选(使用包)ListView。我的代码是这样的:筛选器ListView反应本机,listview,react-native,Listview,React Native,我正在尝试在react native中筛选(使用包)ListView。我的代码是这样的: getInitialState: function() { return { dataSource: new ListView.DataSource({ rowHasChanged: (row1, row2) => row1 !== row2 }) } }, componentDidMount: function() { Contacts.registerCh
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}
/>
)
}
getInitialState:function(){
返回{
数据源:新建ListView.dataSource({
行已更改:(行1,行2)=>行1!==行2
})
}
},
componentDidMount:function(){
联系人。注册表更改((联系人)=>{
this.setContacts(contacts,this.props.filter)
})
Contacts.loadContacts()
},
设置触点:功能(触点、过滤器){
var filteredContacts=fuzzy.filter(
过滤器,
联络,
选项)
这是我的国家({
dataSource:this.state.dataSource.cloneWithRows(filteredContacts)
})
}
组件将接收道具:功能(道具){
this.setContacts(Contacts.getContacts(),props.filter)
},
render:function(){
返回(
}
style={style.container}
/>
)
}
当我运行代码时,一切都正常,直到我尝试更改过滤器值。当过滤器值更改时,我得到以下错误:
尝试读取空对象引用上的字段“int.android.view.ViewGroup$LayoutParams.width”
我不知道发生了什么事。我正在安卓系统中运行它。我发现0.19也存在同样的问题,这里的示例代码说明: 我把它放在了产品的痛苦上-请投票
能否显示更多代码,特别是
getInitialState
,以及数据源初始化?这也是真正的错误吗?附加Chrome调试器并切换到“捕获异常时暂停”并进行验证。Hello@NaderDabit,我添加了getInitialState
和componentDidMount
方法。Adam我试图调试,但没有发生,这就像android java代码错误,而不是javascript错误。我注意到错误只发生在具有大型iTen的ListView中。我试了几次,效果很好。