React Appをアップグレードする段階にあり、ラップされたコンポーネントをReact Router(V4などのもの)に渡すことに長時間苦労した後、コンポーネントが新しい小道具が渡されるたびに「再マウント」ようになります。ラップされたコンポーネントをReact Routerに渡す方法
ここで包まれたコンポーネント...
export default function preload(WrappedComponent, props) {
class Preload extends React.Component {
componentWillMount() {
getDataForComponent(props);
}
render() {
return <WrappedComponent {...props} />;
}
}
return Preload;
}
そして、ここでは、我々はそれを使用している方法ですが...
const FlagsApp = (props) => {
return (
<Route path="/report/:reportId/flag/:id/edit" component{preload(FlagForm, props)} />
);
};
です
アクションをディスパッチしてからアップデートを受信するたびに、コンポーネントが再マウントされ、多くの問題が発生します。あなたはそれぞれのRoute.componentするための新しい関数を渡す
- :場合はgithubの上this threadによると、コンポーネントが再マウントされますレンダリング、例えば
は は、私が直接にFlagForm
コンポーネントを渡す場合、問題が固定されているだけでなく、新しいコンポーネントを作成することになる、 {...}} />匿名関数を
使用して、その後私は利用することができませんpreload
の機能の
コンポーネントの再インストールを行わずに同じ結果を得るにはどうすればよいですか?
ありがとうございました!
あなたはプリロードがどのように動作するかを少し説明していただけますか?それは受信非常に最初の小道具で一度だけデータを求めるべきでしょうか?それとも、小道具の変更にも対応すべきでしょうか?プリロードに必要な小道具はどこから来たのですか? –