onclick 道具不适用于 Material UI?
onclick props not working with Material UI?
这是我在 React.js
上的情况
我的 App.js 调用 selectNumberOfPeople,
有一个函数
然后在我的子组件中(调用 General)我有一个按钮:
<button className="selectedNumberOfPeopleButton" onClick={this.selectedNumberOfPeople} value="1">
1
</button>
单击时在控制台中显示值。
完美运行。
我现在想使用 Material UI 中的按钮,所以我将按钮替换为:
<RaisedButton className="selectedNumberOfPeopleButton"
onClick={this.props.selectedNumberOfPeople}
value="1"
label="1"
labelPosition="before"
primary={true}
/>
但是当使用这个时,该值不再显示在控制台中。 . .
尽管函数在父组件中,但我确实通过了它:
<General selectNumberOfPeople={this.selectNumberOfPeople} selectedPanel={this.showPanelAndHideOthers} />
我尝试更新我的子组件(General.js),例如:
<RaisedButton selectNumberOfPeople={this.props.selectNumberOfPeople}
className="selectedNumberOfPeopleButton"
onClick={this.props.selectedNumberOfPeople}
value="1"
label="1"
labelPosition="before"
primary={true}
/>
但还是不行....
供您参考,
selectNumberOfPeople 在 App.js 作为
selectNumberOfPeople(value) {
console.log('select number of people');
// update the state and provide a callback handler to be called after the state is updated.
// referencing the state before the call back function
// () => {
// console.log(this.state.numberOfPeople)
// })
// will leave the state with the same value as before the setState function is called.
this.setState(
{
numberOfPeople: value,
},
() => {
console.log(this.state.numberOfPeople);
}
);
}
在我的 general.js(子组件)
selectedNumberOfPeople(e) {
this.props.selectNumberOfPeople(e.target.value);
const list = document.getElementsByClassName('selectedNumberOfPeopleButton');
for (let i = 0; i < list.length; i++) {
list[i].classList.remove('hover');
}
this.toggleSelectedButtonState(e);
}
有人对我做错了什么有任何指导吗?
会超级棒的!!
非常感谢!
使用 this.props.selectNumberOfPeople
而不是 selectedNumberOfPeople
。
<RaisedButton
className="selectedNumberOfPeopleButton"
onClick={this.props.selectNumberOfPeople}
value="1"
label="1"
labelPosition="before"
primary={true}
/>
你也可以试试
onClick={()=>this.props.selectedNumberOfPeople}
这是我在 React.js
上的情况我的 App.js 调用 selectNumberOfPeople,
有一个函数然后在我的子组件中(调用 General)我有一个按钮:
<button className="selectedNumberOfPeopleButton" onClick={this.selectedNumberOfPeople} value="1">
1
</button>
单击时在控制台中显示值。
完美运行。
我现在想使用 Material UI 中的按钮,所以我将按钮替换为:
<RaisedButton className="selectedNumberOfPeopleButton"
onClick={this.props.selectedNumberOfPeople}
value="1"
label="1"
labelPosition="before"
primary={true}
/>
但是当使用这个时,该值不再显示在控制台中。 . .
尽管函数在父组件中,但我确实通过了它:
<General selectNumberOfPeople={this.selectNumberOfPeople} selectedPanel={this.showPanelAndHideOthers} />
我尝试更新我的子组件(General.js),例如:
<RaisedButton selectNumberOfPeople={this.props.selectNumberOfPeople}
className="selectedNumberOfPeopleButton"
onClick={this.props.selectedNumberOfPeople}
value="1"
label="1"
labelPosition="before"
primary={true}
/>
但还是不行....
供您参考,
selectNumberOfPeople 在 App.js 作为
selectNumberOfPeople(value) {
console.log('select number of people');
// update the state and provide a callback handler to be called after the state is updated.
// referencing the state before the call back function
// () => {
// console.log(this.state.numberOfPeople)
// })
// will leave the state with the same value as before the setState function is called.
this.setState(
{
numberOfPeople: value,
},
() => {
console.log(this.state.numberOfPeople);
}
);
}
在我的 general.js(子组件)
selectedNumberOfPeople(e) {
this.props.selectNumberOfPeople(e.target.value);
const list = document.getElementsByClassName('selectedNumberOfPeopleButton');
for (let i = 0; i < list.length; i++) {
list[i].classList.remove('hover');
}
this.toggleSelectedButtonState(e);
}
有人对我做错了什么有任何指导吗?
会超级棒的!!
非常感谢!
使用 this.props.selectNumberOfPeople
而不是 selectedNumberOfPeople
。
<RaisedButton
className="selectedNumberOfPeopleButton"
onClick={this.props.selectNumberOfPeople}
value="1"
label="1"
labelPosition="before"
primary={true}
/>
你也可以试试
onClick={()=>this.props.selectedNumberOfPeople}