Javascript 无法将状态从子组件更改为父组件
我正在尝试更改父组件onChange事件中的状态 单击复选框,状态Javascript 无法将状态从子组件更改为父组件,javascript,reactjs,Javascript,Reactjs,我正在尝试更改父组件onChange事件中的状态 单击复选框,状态includeExtremeClaims应更改为true 父组件: export class ManageAnalytics extends Component { static contextTypes = baseContextTypes state = { includeExtremeClaims: false } handleChange = (e, { name, value } = {}) =
includeExtremeClaims
应更改为true
父组件:
export class ManageAnalytics extends Component {
static contextTypes = baseContextTypes
state = {
includeExtremeClaims: false
}
handleChange = (e, { name, value } = {}) => {
this.setState({ [name]: value })
}
render() {
return (
<div>
// Passing down handleChange and includeExtremeClaims state as props
<Analytics
handleChange={this.handleChange}
includeExtremeClaims={this.state.includeExtremeClaims}
/>
</div>
)
}
导出类ManageAnalytics扩展组件{
静态contextTypes=baseContextTypes
状态={
includeExtremeClaims:错误
}
handleChange=(e,{name,value}={})=>{
this.setState({[name]:value})
}
render(){
返回(
//传递手部变更,并将极端索赔状态作为道具
)
}
子组件:
export class Analytics extends Component {
static contextTypes = baseContextTypes
render() {
const { handleChange, includeExtremeClaims } = this.props
return (
<Checkbox
label="Include Extreme Cases"
name="includeExtremeClaims"
onChange={handleChange}
value={includeExtremeClaims}
/>
)
}
导出类分析扩展组件{
静态contextTypes=baseContextTypes
render(){
const{handleChange,includeExtremeClaims}=this.props
返回(
)
}
问题是:单击复选框为什么我的状态未更改?问题在于复选框中提供的值,值始终相同,这就是未更改的原因:
value={includeExtremeClaims}
应该是value={!includeExtremeClaims}
问题在于复选框上提供的值,值始终相同,这就是未更改的原因:
value={includeExtremeClaims}
应该是value={!includeExtremeClaims}
很抱歉第一条评论,完全误读了代码,今天早上我需要一杯额外的咖啡:(我想你可能应该记录handleChange
中发生的事情:它被调用了吗(很可能)还有name
和value
的值是多少。很可能状态是用空对象或类似的东西更新的。没关系:)好的,我会检查一下。很抱歉第一条评论,完全误读了代码,今天早上我需要一杯额外的咖啡:(我认为您可能应该记录在handleChange
中发生的事情:它是否被调用(很可能),以及name
和value
的值是什么。很可能状态是用空对象或类似的东西更新的。可以:)好的,我会检查。