2016-08-11 5 views
2

Я запутался в механизме переименования списка.listview исчез после setState ({ds})

Page 1 имеют визуализацию списка с двумя элементами, затем нажмите кнопку «Добавить», перейдите на другую страницу и добавьте один элемент в источник данных страницы 1, затем навигатор назад.

Что я ожидаю увидеть на странице 1 с тремя элементами, но на самом деле это Page 2, listview исчез. Но если я использую касание мыши/пальца, listView снова выйдет с тремя элементами. меня проверить это на моем Iphone и симулятором

страниц 1 Исходный код:

class Market extends Component { 
    constructor(props) { 
    super(props) 
    this.state = { 
    dataSource: new ListView.DataSource({ rowHasChanged: (r1, r2) => r1 !== r2 }), 
    } 
} 

componentDidMount() { 
    this.refreshListView(this.props.data) 
} 

componentWillReceiveProps(nextProps) { 
    this.refreshListView(nextProps.data) 
} 

refreshListView() { 
    this.setState({ 
    dataSource: this.state.dataSource.cloneWithRows(data) 
    }) 
} 

render() { 
    return (
    <ListView 
     dataSource={this.state.dataSource} 
     renderRow={this._renderRow} 
     refreshControl={ 
     <RefreshControl/> 
     } 
    /> 
) 
} 

const mapStateToProps = createSelector(
    selectData(), 
    (data) => ({ 
    data, 
    }) 
) 

export default connect(mapStateToProps)(Market) 
+0

Im имея подобную проблему - вы используете реагировать родной '0.31.0'? Я думаю, что это может быть ошибка, так как мое приложение отлично работает до обновления – David

+0

@David Я использую 0.30.0, я не тестировал его на 0.31.0, возможно, я должен проверить его на версии <0.30.0 – hulajesus

ответ

Смежные вопросы