現在のバージョンのReact Router(v3)では、サーバーの応答を受け入れ、を使用browserHistory.push
して適切な応答ページに移動できます。ただし、これはv4では使用できません。また、これを処理する適切な方法が何かはわかりません。
この例では、Reduxを使用して、ユーザーがフォームを送信すると、components / app-product-form.jsが呼び出さthis.props.addProduct(props)
れます。サーバーが成功を返すと、ユーザーはカートページに移動します。
// actions/index.js
export function addProduct(props) {
return dispatch =>
axios.post(`${ROOT_URL}/cart`, props, config)
.then(response => {
dispatch({ type: types.AUTH_USER });
localStorage.setItem('token', response.data.token);
browserHistory.push('/cart'); // no longer in React Router V4
});
}
React Router v4の機能からカートページにリダイレクトするにはどうすればよいですか?
history
はReact Nativeでもオプションとして機能し、レガシーブラウザーをサポートする追加オプションとしても機能します。
context
手動で必要なものを渡すためにを使用することは「ノーゴー」です。私が図書館の著者でない限り、それを使用する必要はありません。実際、Facebookはそれを推奨していません。