私は登録に問題があるため、複数のモーダルを持っています。私には合計で3つの行動があります。最初に登録ボタンを押すと、GoogleまたはFacebookにサインアップするために最初の登録モードが起動され、その後、プロバイダーによって収集されなかった追加情報のモーダルが完了し、フォームプロバイダーに収集された入力が事前入力されます。私はアプリケーションをレンダリングするときに2つのモーダルをレンダリングし、登録ボタンがクリックされたときにのみそれを表示します。私はfacebookまたはGoogleログインを完了した後に呼び出されるcomponentDidMountが必要ですが、アプリケーションの起動時にモーダルをレンダリングしたときに呼び出されました。ボタンはモーダルを表示するかどうかを判断するために、アクションリデューサとリデューサをヒットします。再レンダリング時にcomponentDidMountが呼び出されないのはなぜですか?
class HeaderRegisterButton extends Component {
render() {
return(
<div>
<Register1/>
<Register2/>
</div>
);
}
}
登録モーダル1
class Register1 extends Component {
render() {
return(
<div>
<button onClick={() => this.props.showRegister2()} /> //This would hit the action reducer to get initial info and change the bool to show register 1 to false and register 2 to true.
</div>
);
}
}
登録モーダル2
import { reduxForm, Field, initialize } from 'redux-form';
class Register2 extends Component {
componentDidMount() {
hInitalize() //only called when the app fires, not when the state changes in the action reducer to change bool to show this modal.
}
hInitalize() {
var initData = {};
const initData = {
"name" = this.props.name//name stored inside redux store
};
this.props.initialize(initData)
}
render() {
return(
<div>
//Code to display the modal which works.
</div>
);
}
}
'componentDidMount'は1回だけ呼び出され、すべての再レンダリングでは呼び出されません。これは 'componentDidUpdate'でしょう。 – Li357
はい、まさに私が必要でした! – joethemow
@AndrewLiこれは実際に問題を作成し、入力/フォームのいずれにも入力できません – joethemow