Javascript 在react js中更新状态
我有一段代码,它从MaterialUI呈现一个下拉组件,并用来自WS 我设置了一个初始值,即来自WS的firs元素,因此当我第一次呈现页面时,我可以在下拉列表中看到正确的值 我的问题是,当我尝试在下拉列表中选择一个不同的值时,我不能这样做,我想是因为我没有更新状态,我有一个名为handleChange的方法,但我缺少一些东西,但不知道是什么 这是代码,希望有人能帮上忙,我是新的反应,仍然要练习更多Javascript 在react js中更新状态,javascript,reactjs,Javascript,Reactjs,我有一段代码,它从MaterialUI呈现一个下拉组件,并用来自WS 我设置了一个初始值,即来自WS的firs元素,因此当我第一次呈现页面时,我可以在下拉列表中看到正确的值 我的问题是,当我尝试在下拉列表中选择一个不同的值时,我不能这样做,我想是因为我没有更新状态,我有一个名为handleChange的方法,但我缺少一些东西,但不知道是什么 这是代码,希望有人能帮上忙,我是新的反应,仍然要练习更多 import React, { Component } from 'react'; import
import React, { Component } from 'react';
import DropDownMenu from 'material-ui/DropDownMenu';
import MenuItem from 'material-ui/MenuItem';
export default class WebserviceTest extends Component {
constructor() {
super();
this.state = {
data: [],
selected: ''
};
this.renderOptions = this.renderOptions.bind(this);
this.handleChange = this.handleChange.bind(this);
}
componentDidMount() {
const url = 'https://randomuser.me/api/?results=4';
fetch(url)
.then(Response => Response.json())
.then(findResponse => {
console.log(findResponse);
this.setState({
data: findResponse.results,
selected: findResponse.results[0].name.first
});
console.log('----- ', this.setState.selected);
});
}
handleChange(value) {
this.setState({ selected: (value) });
}
renderOptions() {
return this.state.data.map((dt, i) => {
return (
<MenuItem
key={i}
value={dt.name.first}
primaryText={dt.name.first} />
);
});
}
render() {
return (
<div>
<DropDownMenu value={this.state.selected} onChange={this.handleChange}>
{this.renderOptions()}
</DropDownMenu>
</div>
);
}
}
欢迎任何帮助
提前感谢。在“材质UI”下拉列表中,所选值显示为第三个参数。因此,在handleChange方法中使用类似的方法
Ref:谢谢您的时间,我添加了,它成功了。。。我不明白的是,它们显示为灰色的事件和索引,所以我删除了它们,但似乎这些参数需要存在…我认为这是因为您没有使用事件和索引。你根本不用担心
handleChange(event, index, value) {
this.setState({ selected: (value) });
}