2016-08-21 125 views
4

我想填充在ListView反應本地人與MobX的觀察到的陣列,像這樣:如何在MobX中使用React Native 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} 
      /> 
    } 

但在運行代碼時,renderRow()不會被調用。它像cloneWithRows()方法不知道如何克隆行。

有沒有人成功做到這一點? (而且也得到它的行爲,當狗在狗的變化列表名稱,然後在列表中的細胞會重新渲染)

更新: 更多在這裏信息https://github.com/mobxjs/mobx/issues/476

回答

1

如果我沒記錯你需要切片的狗(哈哈)dogs.slice()否則,ListView將無法將其識別爲適當的數組。可能是由renderRow呈現的組件也需要成爲觀察者組件,因爲它可能是異步調用的。

請注意,切片應該在render方法中完成,而不是在構造函數中完成;您希望每次收集更改時都會發生這種情況,而不僅僅是在構建組件時。另外還有:https://github.com/mobxjs/mobx/issues/476

相關問題