【发布时间】:2017-02-21 04:54:45
【问题描述】:
我有多种注册模式,但遇到了麻烦。我一共有三个动作。首先是注册按钮,然后激活第一个注册模式以使用 google 或 facebook 注册,然后在完成模式后,提供者无法收集的其他信息将显示为提供者收集的预填充输入。我在渲染应用程序时渲染了这两个模态,并且仅在单击注册按钮时才显示它。我需要在完成 facebook 或 google 登录后调用 componentDidMount,但是当我在应用程序启动时渲染模式时调用它。按钮点击动作减速器和减速器改变类型 bool 的状态是否显示模态。
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只被调用一次,而不是在每次重新渲染时。那将是componentDidUpdate。 -
@AndrewLi 这实际上造成了一个问题,我无法输入任何输入/表单
标签: reactjs