【发布时间】:2018-12-10 06:11:07
【问题描述】:
这是来自名为 FrankerZ 的用户的示例代码:
class ExampleComponent extends React.Component {
onBlur = async () => {
const results = await axios.get('myhttpendpoint');
this.setState({
results
});
}
render() {
return (
<div>
<form>
<span className="name"> Search Term: </span>
<input id="search-term" value={this.state.value} onBlur={this.onBlur} />
</form>
<div id="results">
{this.state.results}
</div>
</div>)
}
}
但本质上,我的问题是,如果我的 axios.get 返回一个带有类似键的对象,该怎么办?
[{名称:test1,数据:datadatadata},{名称:test2,数据:datatatatatata}]
如何在它自己的 span 或自己的 div 中渲染每个对象? 我尝试使用诸如
之类的地图this.setState(results.map((item, index) => (<li key = {index}>{item.name}</li>)));
但它似乎不起作用。我这样做是因为 React 似乎无法使用键渲染对象,它告诉我使用数组来代替,这是我尝试过的。
【问题讨论】:
-
你的状态只是数据。如何将标记逻辑放入状态中?首先阅读 React 文档。
-
哦,我可以把逻辑放到另一个 const temp 中,然后执行 this.setState({temp})
标签: javascript reactjs onblur