【发布时间】:2022-06-22 00:22:45
【问题描述】:
最好的问候。这是我的第一个问题。我是新来的反应,我不知道如何解决这个疑问。
我提出请求,我将答案保存在状态中。现在我无法反序列化 json 并在应用程序中使用它。我尝试了几种在线推荐的方法,但没有。如果我做一个json.stringify,可以看到信息,即请求正确。
这是我从 api 收到的请求:
{"boards":[{"items":[{"id":"John Smith","column_values":[{"text":"Caracas, Distrito Capital, Venezuela"}]},{"id":"Edith Ruza","column_values":[{"text":"Buenos Aires, CABA, Argentina"}]},{"id":"david Rios","column_values":[{"text":"Perth Australia Occidental, Australia"}]},{"id":"Peter Doe","column_values":[{"text":"Calgary, Alberta, Canadá"}]},{"id":"Mary Jones","column_values":[{"text":"London, Reino Unido"}]},{"id":"Lionel Messi","column_values":[{"text":"París, Francia"}]},{"id":"Samy Forte","column_values":[{"text":"Mexico City, CDMX, México"}]},{"id":"Tadeo Carthy","column_values":[{"text":"Tel Aviv, Israel"}]}]}]}
这是我的代码不起作用:
class App extends React.Component {
constructor(props) {
super(props);
// Default state
this.state = {
setData:{},
settings: {},
myData: {},
};
}
com
componentDidMount() {
monday
.api('query { boards( ids : 2664704591 ) { items { id : name column_values(ids : "ubicaci_n") { text }}}}')
.then(res => {this.setState({myData: res.data})});
}
render() {
return (
<div className="App">
<AttentionBox
title="hola"
text="Let's start building your amazing app, which will change the world!"
/>
<div className="btn btn-primary"></div>
<button className="btn btn-warning"></button>
<div>
{this.state.myData.map((property) => {
return (<div>property</div>)
})}
</div>
</div>
);
}
}
export default App;
如果有任何前进的线索,我将不胜感激
【问题讨论】:
-
您很可能需要
myData: JSON.parse(res.data)(if res.data 是 JSON 字符串)。但是,您不能 .map() 覆盖不是数组的东西。如果一切正常,this.state.myData.boards应该是一个数组,但您还需要在初始状态下使用myData: { boards: [] },否则您的渲染代码将会出错
标签: javascript reactjs loops jsx monday.com