Yar*_*evi 5 listview react-native mobx
我正在尝试使用MobX的可观察数组填充React本地的ListView,如下所示:
constructor(props) {
super(props)
var dataSource = new ListView.DataSource({ rowHasChanged: (r1, r2) => r1 !== r2 });
let dogs = props.store.dogs;
this.state = { dogs: dogs, dataSource: dataSource };
}
render() {
var dogs = this.state.dogs;
var dataSource = this.state.dataSource.cloneWithRows(dogs);
return <ListView
dataSource={dataSource}
renderRow={this.renderRow}
/>
}
Run Code Online (Sandbox Code Playgroud)
但是在运行代码时,renderRow()永远不会被调用。就像cloneWithRows()方法一样,它不知道如何克隆行。
有人成功做到了吗?(并且使其表现为当狗列表中的狗的名称发生更改时,列表中的单元格将重新呈现)
如果我没记错的话,你需要将狗切片(笑)dogs.slice(),否则 ListView 不会将其识别为正确的数组。可能的情况是,渲染的组件renderRow也需要是观察者组件,因为它可以异步调用。
请注意,切片应该在render方法中完成,而不是在构造函数中完成;您希望每次集合更改时都发生这种情况,而不仅仅是在构造组件时发生。
另请参阅: https: //github.com/mobxjs/mobx/issues/476
| 归档时间: |
|
| 查看次数: |
1219 次 |
| 最近记录: |