[英]Cannot get the Selected Value from Materialize dropdown with React JS
我有这个Materialize DropDown
<ul id="dropdown1" className="dropdown-content">
<li>
<a href="#!">
one
</a>
</li>
<li>
<a href="#!">two</a>
</li>
<li className="divider" tabIndex="-1"></li>
<li>
<a href="#!">three</a>
</li>
<li>
<a href="#!">
<i className="material-icons">view_module</i>four
</a>
</li>
<li>
<a href="#!">
<i className="material-icons">cloud</i>five
</a>
</li>
</ul>
我宣布如下:-
componentDidMount() {
let dropdowns = document.querySelectorAll('.dropdown-trigger');
let options = {
inDuration: 300,
outDuration: 300,
hover: true, // Activate on hover
coverTrigger: false, // Displays dropdown below the button
};
M.Dropdown.init(dropdowns, options);
var instance = M.Dropdown.getInstance(dropdowns);
}
可以正常显示,但是我无法获取所选值。
我尝试了以下JQuery:
$(document).ready(function(){
$('dropdown1').formSelect();
});
但我收到类型错误:-
TypeError: jquery__WEBPACK_IMPORTED_MODULE_6___default(...)(...).formSelect is not a function
任何帮助将不胜感激!
谢谢
我认为应该在表单的情况下使用<Select>
从选项列表中进行选择 。 因此,您可以在componentDidMount()
生命周期方法中初始化Materialize
组件。
我在<Select>
上附加了onChange
事件侦听器,以便我们可以跟踪值并将其保存在我们的状态中。 我还提供了defaultValue
属性,以便一个人以形式知道他必须选择什么,例如“选择一个国家” 。
选择组件
import React, { Component } from "react";
import M from "materialize-css";
import "materialize-css/dist/css/materialize.min.css";
class Select extends Component {
constructor() {
super();
this.state = {
selectVal: null
};
}
componentDidMount() {
M.FormSelect.init(this.FormSelect);
}
handleChange = event => {
this.setState({
[event.target.name]: event.target.value
});
};
render() {
console.log(this.state.selectVal);
return (
<div className="input-field col s12">
<select
ref={FormSelect => {
this.FormSelect = FormSelect;
}}
name="selectVal"
onChange={this.handleChange}
defaultValue="0"
>
<option value="0" disabled>
Choose your option
</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
<label>Materialize Select</label>
</div>
);
}
}
export default Select;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.