Я сейчас изучаю React Native. Я хочу написать ListView. В учебнике, которому я следую, используется устаревший метод componentWillMount
, который теперь называется UNSAFE_componentWillMount
. Я погуглил людей, которые сказали, что этот метод следует заменить на componentDidMount
. Моя проблема в том, что когда я добавляю этот метод в свой код, приложение разрывается.
Вот код:
/* @flow */
import React, { Component } from "react";
import { ListView } from "react-native";
import { connect } from "react-redux";
import PropTypes from "prop-types";
import ListItem from "./ListItem";
class LibraryList extends Component {
componentDidMount = () => {
const ds = new ListView.DataSource({
rowHasChanged: (r1, r2) => r1 !== r2
});
this.dataSource = ds.cloneWithRows(this.props.libraries);
};
renderRow = library => <ListItem library={library} />;
render() {
return <ListView dataSource={this.dataSource} renderRow={this.renderRow} />;
}
}
LibraryList.propTypes = {
libraries: PropTypes.array
};
const mapStateToProps = state => {
return { libraries: state.libraries };
};
export default connect(mapStateToProps)(LibraryList);
А вот и сообщение об ошибке, которое я получаю TypeError: Cannot read property 'rowIdentities' of undefined
. Какой метод я должен использовать здесь, или как я могу это исправить?