【发布时间】:2022-11-26 03:58:23
【问题描述】:
我正在 React 工作并有一个 resonse (ReviewerService.getReviewers()) 返回一个值数组:
0: {id: 1, firstName: 'John', lastName: 'Doe', email: 'johndoe@aol.com', responses: '{"q1":"yes","q2":"no","q3":"yes","rating":4}'}
1: {id: 2, firstName: 'bob', lastName: 'jefferson', email: 'bob@aol.com', responses: '{"q1":"bob","q2":"yes","q3":"yes","rating":5}'}.
如果this.state = { reviewers: [] }。
我如何将响应数据传递给审阅者并同时解析响应属性?因此,我可以轻松访问响应的这些属性。
class ListReviewsComponent extends Component {
constructor(props) {
super(props);
this.state = {
reviewers: [],
};
}
async componentDidMount() {
await ReviewerService.getReviewers().then((res) => {
this.setState({ reviewers: res.data });
});
this.setState({ reviewers.responses: JSON.parse(this.state.reviewers.responses)}); // error
}
【问题讨论】:
-
this.state.reviewers,是一个数组,JS中的数组没有responses属性,所以this.state.reviewers.responses绝对是一个bug。你得到了什么错误,你实际上试图在reviewers数组中存储什么?请将此包含在您的问题中。 -
审稿人 = [ {id: 1, firstName: 'John', lastName: 'Doe', email: 'johndoe@aol.com', responses: '{"q1":"yes","q2":"no", "q3":"yes","rating":4}'}, {id: 2, firstName: 'bob', lastName: 'jefferson', email: 'bob@aol.com', responses: '{"q1 ":"bob","q2":"yes","q3":"yes","rating":5}'}] ------------ 我如何解析响应属性以便它不再是每个数组的字符串?
标签: javascript reactjs arrays json object