私はリアクトを使用していますが、問題が発生しました。 私はユーザーを追加するためのコンポーネントを持っています。リアクション - 同じレンダリングで異なるロジックを持つ2つのコンポーネント
は、AddUser:
export default class AddUser extends React.Component {
onClick() {
// Save the user.
}
render() {
// Some components.
}
}
は、今私はEditUserに部品を実装する、renderメソッドは、小道具を通過することができ、ボタンのテキストを除いて、まったく同じです。 しかし、ロジックは異なります.onClickはapiとは別のURLにアクセスし、apiからユーザーの詳細をロードして状態にする必要があります。
私の質問は、これを正しく実装する方法です。 私はAddUserコンポーネントになるベースコンポーネントを作成することを考えました。そして、EditUserコンポーネントはそれを継承し、componentDidMountメソッドをオーバーライドしてAPIからデータをロードします。
そうするベストプラクティスは何ですか?
として空のオブジェクトまたはnullを渡すadduserのケースのために私はあなたのソリューションを試してみましたが、私はこの問題に遭遇してきました。 私はその状態のユーザを含むUserFormを持っており、それは入力に従ってそれを更新します。 AddUserコンポーネントでは、私はUserFormをレンダリングしてonSaveを渡すだけで、すべての問題は解決します。しかし、私はEditUserにいくつかの問題があります。私はサーバーからデータを取得して、それをUserFormコンポーネントに渡し、データに応じてUserFormの状態を設定する必要がありますが、UserFormコンストラクターは、 EditUser – Pachu
あなたができることの1つは、updateComponentでユーザーをフェッチし、それをUserFormに小道具として与え、次にユーザーがいるか、これが更新操作でない場合にuserFormをレンダリングすることです。後でUserFormでユーザーを設定するには、componentWillReceivePropsメソッドを使用します。レンダリングされる次の小道具が渡され、現在のprops.userがnextProps.userと同じでないかどうかを確認して、nextProps.userでユーザーの状態を設定できます。 – cubbuk
私はちょうどコメントを編集しました。 – Pachu