1
ユーザーが/Products/1
を訪問したときに<Product>
をレンダリングします。どのようにしてルート衝突を回避できますか?
ユーザーが/Products/new
を訪問したときに<CreateProduct>
をレンダリングしたいとします。
私のルータがそうのようになります。ユーザーは/Products/new
を閲覧
<Route exact path="/Products/new" component={CreateProduct} />
<Route exact path="/Products/:productId" component={Product} />
場合は、再Product
コンポーネント投げるエラーにルートと結果の両方にマッチします。id new
で製品を見つけることではありません。
これを避けるために、反応ルータのドキュメントで何かを見つけることができませんでした。私は潜在的に、このハックを使用していますが、 "より良い" の方法がなければならないことができます:
const renderProduct = props =>
props.match.params.productId === 'new'
? null
: <Product {...props} />;
これは私が必要としていたものです。私は私のgoogle fooがかなり標準になっていないと思います。タイマーが許可するときに受け入れます –
あなたはreact-router v4を使用しています。これまでのバージョンよりも理解しやすいです。 – Win
あなたはこれを読むことができます:https://reacttraining.com/react-router/web/example/ambiguous-matches – Win