Javascript 将方法作为道具传递给孩子
有没有办法将当前类的方法作为道具传递给子类 例如,Javascript 将方法作为道具传递给孩子,javascript,reactjs,react-jsx,Javascript,Reactjs,React Jsx,有没有办法将当前类的方法作为道具传递给子类 例如, var SignupModal = React.createClass({ mixins: [CheckMixin], getInitialState: function(){ return { 'wizardstate': 0 } }, setWizardState: function(state){ var that = this; switch (state){ case 0:
var SignupModal = React.createClass({
mixins: [CheckMixin],
getInitialState: function(){
return {
'wizardstate': 0
}
},
setWizardState: function(state){
var that = this;
switch (state){
case 0:
that.setState({'wizardstate': 0});
break;
case 1:
that.setState({'wizardstate': 1});
break;
case 2:
that.setState({'wizardstate': 2});
break;
case 3:
that.setState({'wizardstate': 3});
break;
case 4:
that.setState({'wizardstate': 4});
break;
}
},
render: function(){
var temp;
switch (this.state.wizardstate){
case 0:
temp = (<SignupSetup setWizardState={this.setWizardState}/>);
break;
case 1:
temp = (<EmailSetup />);
break;
case 2:
temp = (<PasswordSetup />);
break;
case 3:
temp = (<UsernameSetup />);
break;
case 4:
temp = (<CategoriesSetup />);
break;
}
return (<Modal {...this.props} title="Login" animation={false}>
<div className="modal-body">
<div>
{temp}
</div>
</div>
</Modal>)
var SignupSetup = React.createClass({
render: function(){
return (<Button onClick={this.props.setWizardState(1)}></Button>)
}
});
var SignupModal=React.createClass({
mixin:[CheckMixin],
getInitialState:函数(){
返回{
“向导状态”:0
}
},
setWizardState:函数(状态){
var=这个;
开关(状态){
案例0:
setState({'wizardstate':0});
打破
案例1:
setState({'wizardstate':1});
打破
案例2:
setState({'wizardstate':2});
打破
案例3:
setState({'wizardstate':3});
打破
案例4:
setState({'wizardstate':4});
打破
}
},
render:function(){
无功温度;
开关(this.state.wizardstate){
案例0:
温度=();
打破
案例1:
温度=();
打破
案例2:
温度=();
打破
案例3:
温度=();
打破
案例4:
温度=();
打破
}
返回(
{temp}
)
var SignupSetup=React.createClass({
render:function(){
返回()
}
});
我想将这个SignupModal的setWizardState方法作为prop传递给子SignupSetup,但是我得到了错误
未捕获错误:不变冲突:replaceState(…):无法在现有状态转换期间更新(例如在
渲染)。渲染方法应该是道具和状态的纯函数。react.js:17122
问题如下:
<Button onclick={this.props.setWizardState(1)}></Button>
如果您有类似的编译器,也可以使用es6箭头符号
this.props.setWizardState(1)}>
这是reactjs官方网站。显然,您需要绑定此函数,而不是直接应用
onClick={this.setWizardState.bind(this, 1)}
Antony,他们想把数字作为函数的第一个参数,但不想在render中调用函数。人们理解这个问题有很多原因,所以你能解释一下你的困惑吗?@FakeRainBrigand请给我详细解释一下这个问题,在我申请成为你上面提到过。一切都很好。非常感谢。@SusylGhimire我不知道还能说些什么那么你怎么知道应该传递null参数并绑定这个方法,最终解决了问题?
onClick={this.setWizardState.bind(this, 1)}