Редуктор навигации не вызывается во время навигации

Я пытаюсь добиться вложенной навигации, используя reactnavigation. У меня есть редуктор, как показано ниже:

import AppNavigation from '../Navigation/AppNavigation'

export const reducer = (state, action) => {
  const newState = AppNavigation.router.getStateForAction(action, state) 
  console.log("reducer is running")     
  return nextState || state;
}

С одного экрана я пытаюсь перейти на другой экран, используя

this.props.navigation.navigate('OrderPreviewAssigned')

Я вижу действие отправки в своей консоли, но редуктор не срабатывает.

консольный вывод: введите здесь описание изображения

PS: причина, по которой я пытаюсь достичь этого, заключается в том, что я хочу предотвратить двойную навигацию при быстром нажатии кнопки, поэтому мой план состоит в том, чтобы прочитать текущий маршрут и, если маршрут отличается, просто перемещаться или не т.


person bashIt    schedule 13.09.2017    source источник
comment
При нажатии кнопки отключите кнопку. Это предотвратит второй щелчок от чего-либо.   -  person Chase DeAnda    schedule 13.09.2017
comment
Куда вы звоните редуктору?   -  person Vamshi Gudipati    schedule 13.09.2017
comment
Редуктор @VamshiGudipati вызывается с помощью combReducers. Редуктор называется когда-то.   -  person bashIt    schedule 13.09.2017
comment
@ChaseDeAnda Я могу отключить его, но кнопки находятся в виде списка, поэтому нет необходимости отслеживать все. любые другие варианты   -  person bashIt    schedule 13.09.2017


Ответы (1)


Похоже, вы неправильно настроили интеграцию Redux с React Navigation. Вам нужно передать состояние и отправить в основной AppNavigator следующим образом:

import { addNavigationHelpers } from 'react-navigation';

const AppNavigator = StackNavigator(AppRouteConfigs);

class App extends React.Component {
  render() {
    return (
      <AppNavigator navigation={addNavigationHelpers({
        dispatch: this.props.dispatch,
        state: this.props.nav,
      })} />
    );
  }
}

См. документы по интеграции Redux от React Navigation для получения дополнительной информации и рабочего примера: https://reactnavigation.org/docs/guides/redux

person Tyler Whitman    schedule 14.09.2017
comment
Я уже сделал это. Но все же это не работает. Я использую шаблон зажигания, и это делается там. - person bashIt; 14.09.2017