Я недавно обновил реакцию-навигацию до версии 2.18.0, и часть моего кода, которая раньше работала, больше не работает.После прочтения документации у меня все еще возникают проблемы с воспроизведением функций, которые у меня были раньше.
По сути, я хотел, чтобы все данные, которые необходимо было загрузить на экран статистики, перед вызовом jumpToIndex, чтобы компонент StatsScreen имелдоступ к обновленным данным перед render ().
Эта функциональность раньше работала, но теперь я получаю «Отклонение необработанного обещания: TypeError: jumpToIndex не является функцией».предупреждение.и jumpToIndex никогда не происходило.
В App.js я изменил TabNavigator на createBottomTabNavigator и внес необходимые изменения для обновления.
const RootNavigator = createBottomTabNavigator({
Home: {
screen: HomeStackNavigator,
navigationOptions: ({ navigation }) => ({
//Navigation options here
),
}),
},
StatsScreen: {
screen: StatsScreen,
},
}, {
lazy: false,
});
В StatsScreen.js:
export default class StatsScreen extends Component {
static navigationOptions = ({ navigation }) => ({
tabBarOnPress: async (tab, jumpToIndex) => {
if (!tab.focused) {
await navigation.state.params.update();
jumpToIndex(tab.index);
}
},
});
async componentDidMount() {
this.props.navigation.setParams({
update: this._updateStats.bind(this),
});
}
async _updateStats() {
//logic in this function calls updateData() if needed.
}
async _updateData() {
//Update the data
}
render() {
return (
// Component JSX ommitted from this example
);
}
}
Есть идеи о том, что нужно сделать?