Роман Александрович, У есть массив там 6 элементов.
На странице - HomePage. Сладйер с пагинацией . Index объекта сохраняется в state. В значение ActiveSlide.
На странице HomePageList все те же 6 элемент.Только списком и поиском.
Когда я нажимаю на какой-нибудь элемент HomePageList. Происходит _GoHome.
Роман Александрович, Спасибо за ответ у меня все получилось. Но есть один момент:
Как мне каждый раз по нажатию GoHome передавать это значение в state.
То есть сейчас оно у меня работает так:
setInterval(() => {
this.ActiveSlide()
}, 1000);
async ActiveSlide() {
let value = await this.props.navigation.getParam("index");
if (value !== undefined) {
this.setState({
activeSlide: value
});
this.props.navigation.state.params.index = undefined;
}
}
Дело в том что RN в консоли начинает ругать. Что нужно для таких дел использовать PureComponent. Для моего _renderItem (Объект в слайдере). Можно ли как то это обойти и сделать просто реагирование без setInterval?
Илья Краморов, вы можете вызывать ActiveSlide в ComponentWillRecieveProps(nextProps) и проверять если в this.props.navigation ... значение отличается от значения в nextProps.nevigation .... и смотреть если значения в параметрах разное то вызывать свою функцию если одинаковое то ничего не делать э
Роман Александрович, По какой- то причине он сохараняет новый индекс конкретно через раз.
console.log(ActiveSlide)
undefined - > Нажимаю на первый элемент. state.ActiveSlide = undefined. Возвращаю на страницу HomeList.
0 -> Нажимаю опять на первый элемент. state.ActiveSlide = 0. Возвращаю на страницу HomeList.
0 - > Нажимаю на второй элемент. state.ActiveSlide = 0.Возвращаю на страницу HomeList.
1 -> Нажимаю опять на второй элемент. state.ActiveSlide = 1
this.props.navigation.push(HOMEPAGE,{
index: index
})
Но результат все ровно не тот.
Все теперь работает как-надо. Но страницу перезагружается полностью.
И каждый раз ActiveIndicator срабатывает.
А срабатывает он потому что каждый когда я нажимаю на _GoHome сбрасываются все state на HomePage.
setState фнкция ассинхронная и наверно вы не дожидаетесь ее окончания Илья Краморов,
async ActiveSlide() {
let value = await this.props.navigation.getParam("index");
if (value !== undefined) {
await this.setState({ //вот тут изменения
activeSlide: value
});
this.props.navigation.state.params.index = undefined;
}
}
async ActiveSlide() {
let value = await this.props.navigation.getParam("index");
if (value !== undefined) {
await this.setState({ //вот тут изменения
activeSlide: value
});
this.props.navigation.state.params.index = undefined;
}
}