React показывает информацию от одного компонента к другому, которые не имеют общего parant

#javascript #reactjs

#javascript #reactjs

Вопрос:

У меня есть следующий маршрутизатор react:

 ReactDOM.render(
<Router history={hashHistory}>
    <Route path="/" component={MyHeader}>
        <IndexRoute component={Main}/>
        <Route path="carwash" component={CarWashPage} />
        <Route path="carwashAdd" component={AddCarWashPage} />
        <Route path="carwashAdd/:carWashId" component={EditCarWashPage} />

    </Route>
</Router>,
destination
);
  

В компоненте AddCarWashPage у меня есть форма для автомойки, и когда она отправляется, я делаю перенаправление ( browtherHistory.push('/carwash') ) на компонент CarWashPage .

Теперь после перенаправления я хочу показать в CarWashPage информации о компоненте, что автомойка была успешно сохранена. Как я могу передать этот текст или, может быть, какой-то флаг из AddCarWashPage CarWashPage , CarWashPage чтобы узнать, когда должен отображаться соответствующий текст?

Комментарии:

1. Я думаю, вы можете передавать параметры с помощью метода push

Ответ №1:

Простое решение — Redux. Если вы не хотите добавлять эту библиотеку, тогда вам нужно иметь либо глобальную шину состояния (может запутаться), либо общего предка. Оба этих маршрута являются дочерними MyHeader . Если вы хотите использовать подход общего предка, тогда вы могли бы MyHeader передать обратный вызов дочернему элементу.

Однако Redux по-прежнему остается верным, поэтому я настоятельно рекомендую его.