Я обновляю свое приложение с response-navigation 1.5 до 3.0.9. Я не понимаю, в чем разница в управлении состоянием компонентов, но я уверен, что они есть. Раньше это работало нормально, теперь ведет себя странно. Похоже, что состояние каким-то образом кэшируется, и, просматривая и возвращаясь к этому компоненту, state.params.letter
остается прежним, даже когда мне это не нужно. Разве состояние не должно быть разрушено, если я изменю представление?
Компонент имеет очень простую логику, он показывает FlatList
элементов. Если свойство letter
присутствует, оно показывает только те элементы, которые начинаются с этой буквы.
export default class Search extends Component {
constructor(props) {
super(props);
}
DB = null;
componentDidMount(){
//check for the param "letter"
let L = this.props.navigation.state.params ? this.props.navigation.state.params.letter : null;
this.setState({
DB: L ? this.DB.getStartWith(L) : this.DB.getAll()
})
}
render() {
const { params } = this.props.navigation.state;
const { t, i18n, navigation } = this.props;
return (
<View>
<FlatList data={this.state.DB}
renderItem=({item}) => <Text> {item} </Text>
/>
</View>
);
}
}