【发布时间】:2017-06-08 07:06:02
【问题描述】:
我使用MultiSelect Plugin 选择下拉菜单。在 onChange 事件中,我将值存储在 setState 中。下面是代码:
$('#selectbox-id-onChange').multiselect({
onChange: function(option, checked) {
var newArray = this.state.options.slice();
newArray.push($(option).val());
this.setState({options: newArray});
}
});
上面的代码工作正常,我也可以将数组值存储在 state 中。但唯一的问题是页面每次都在刷新,同时将值存储在状态中。
请务必让我知道我在哪里出错了。我试图弄清楚但无法得到解决方案。
【问题讨论】:
-
为什么你是带有 react 的 jquery 插件。我会建议使用上述插件的 React 版本。 github.com/skratchdot/react-bootstrap-multiselect
-
React 会在状态改变时重新渲染组件。
-
React 会在每次状态改变时重新渲染。这就是它不断刷新/更新组件的原因。您是否尝试过将它与
onBlur一起使用而不是onChange?onBlur方法会在离开组件时触发。 -
@Ved,感谢您的更新。我一定会调查的。
标签: reactjs