Javascript 通过事件处理程序更改反应状态

Javascript 通过事件处理程序更改反应状态,javascript,jquery,reactjs,Javascript,Jquery,Reactjs,我的问题是: 如何使用“多重选择”更改默认集合对象的状态 比如说,我有状态checkDevice和checkCountry,所以在下面的提琴中,我将所有值都设置为false 我只想将在多选下拉列表中选择的那些属性的值设置为true 例如:在multi-select中,如果我只选择美国和英国,那么在我所在的州,有没有一种方法可以获得类似于: checkCountry: { 'US': true, 'UK': true, 'JP': fal

我的问题是:

如何使用“多重选择”更改默认集合对象的状态

比如说,我有状态checkDevice和checkCountry,所以在下面的提琴中,我将所有值都设置为false

我只想将在多选下拉列表中选择的那些属性的值设置为true

例如:在multi-select中,如果我只选择美国和英国,那么在我所在的州,有没有一种方法可以获得类似于:

checkCountry: 
     {
        'US': true,
        'UK': true,
        'JP': false
      }
类框扩展了React.Component{ 建造师{ 超级的 此.state={ 检查设备:{ “iPhone4”:错, “iPhone 5”:错, "iphone6":错,, “iPhone7”:错, “iPhone8”:错, “iPhone X”:错误, }, 检查国家:{ "我们":假,, "英国":错,, "JP":错 } } } 组件安装{ $document.readyfunction{ $“国家/地区”。选择材料; }; $document.readyfunction{ $“设备”。选择材料; }; } 渲染{ 回来 选择你的选择 我们 英国 太平绅士 国 选择你的选择 iPhone4 iPhone5 iphone6 iPhone7 iPhone8 iPhoneX 装置 ; }; } ReactDOM.render,document.getElementById'root';
必须从onChange事件调用事件处理程序才能执行此操作

如果您没有使用漂亮的jQuery插件,您可以:

HandleChange事件{ this.setState{name:event.target.value} } 渲染{ 返回此.handleChangeevent}
} 必须从onChange事件调用事件处理程序才能执行此操作

如果您没有使用漂亮的jQuery插件,您可以:

HandleChange事件{ this.setState{name:event.target.value} } 渲染{ 返回此.handleChangeevent} } materializecss不会触发react onChange,因此您必须绑定到componentDidMount中

select的值由react虚拟dom REMENT?控制,因此您必须为select指定当前值

我在哪里更改了你的代码

类框扩展了React.Component{ 组件安装{ //更改后绑定 $this.countrySelect .onchange,=>{ 让我们检查国家={ 美国:错,, 英国:错, JP:错 }; 让val=$this.countrySelect.val; console.logval; val.forEachx=>{ checkCountry[x]=true; }; 这是我的国家{ 支票国 }; } .材料选择; } 渲染{ const{checkCountry}=this.state; const countryVal=Object.keyscheckCountry.filterx=>checkCountry[x]; //阿西金值 返回this.countrySelect=countrySelect} 值={countryVal} /> } } materializecss不会触发react onChange,因此您必须绑定到componentDidMount中

select的值由react虚拟dom REMENT?控制,因此您必须为select指定当前值

我在哪里更改了你的代码

类框扩展了React.Component{ 组件安装{ //更改后绑定 $this.countrySelect .onchange,=>{ 让我们检查国家={ 美国:错,, 英国:错, JP:错 }; 让val=$this.countrySelect.val; console.logval; val.forEachx=>{ checkCountry[x]=true; }; 这是我的国家{ 支票国 }; } .材料选择; } 渲染{ const{checkCountry}=this.state; const countryVal=Object.keyscheckCountry.filterx=>checkCountry[x]; //阿西金值 返回this.countrySelect=countrySelect} 值={countryVal} /> }
}混合使用jQuery和React不是一个好主意,但如果必须,则必须有一个事件处理程序来实际处理事件。我尝试添加一个事件处理程序,但materialize jQuery层似乎正在拦截单击,事件处理程序根本没有接收任何事件。有人有什么想法吗?混合使用jQuery和React不是一个好主意,但如果必须的话,您必须有一个事件处理程序来实际处理事件我尝试添加一个事件处理程序,但materialize jQuery层似乎正在拦截点击,事件处理程序根本没有接收任何事件。有人有什么想法吗?