Arrays 在POST方法的json文件中使用map时创建调查问题
我使用的是这段代码,地图是针对answers_属性的,因此它创建的调查与answers.length的数量相同。所以我想避免重复。我只想为答案属性添加地图。请为我建议任何解决方案 编辑: 当我传递数据时: 标题:“Api测试”, 说明:“api说明”, 专门化:“Api专门化”, 答案=[{答案文本:“答案1”},{答案文本:“答案2”}] 我正在获取输出:Arrays 在POST方法的json文件中使用map时创建调查问题,arrays,reactjs,api,react-native,Arrays,Reactjs,Api,React Native,我使用的是这段代码,地图是针对answers_属性的,因此它创建的调查与answers.length的数量相同。所以我想避免重复。我只想为答案属性添加地图。请为我建议任何解决方案 编辑: 当我传递数据时: 标题:“Api测试”, 说明:“api说明”, 专门化:“Api专门化”, 答案=[{答案文本:“答案1”},{答案文本:“答案2”}] 我正在获取输出: 标题:“Api测试”, 说明:“api说明”, 专门化:“Api专门化”, 答案=[{answer_text:“answer1”}] 标题
标题:“Api测试”, 说明:“api说明”, 专门化:“Api专门化”, 答案=[{answer_text:“answer1”}] 标题:“Api测试”, 说明:“api说明”, 专门化:“Api专门化”, 答案=[{答案文字:“答案2”}] 但我想要输出: 标题:“Api测试”, 说明:“api说明”, 专门化:“Api专门化”, 答案=[0:{答案文本:“答案1”},1:{答案文本:“答案2”}]
这意味着我得到了所有的数据答案。时间长度。这是我的问题。您可以使用
映射
直接映射到应答属性
,无需将每个应答
映射到单个对象以发送到服务器。试试这个:
async createSurvey(streamId, title, specialization, description,
answers) {
let token = await getToken();
let url = '/api/survey';
let answer_text;
answers.map((answer, index) => {
answer_text = answer.answer;
const body = JSON.stringify({
question: {
title: title,
description: description,
specialization: specialization,
answers_attributes: {
'0': {
answer_text: answer_text
}
}
}
});
return fetch(BASE_URL + url, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Token token=' + token
},
body
}).then(res => {
console.log('server response :', res);
return res;
}).catch(err => console.log('Fetch error :', err));
})
}
您是否仍然希望每个答案都有一个post请求,或者您希望能够发布带有答案的数组?我想发布带有答案的数组是什么格式的
答案\u属性
?它是一个答案数组还是一个对象,其键对应于答案的索引,值对应于答案本身?_属性格式如下:答案属性=[{答案文本:“答案为dzzxch”},{答案文本:“答案文本为dvbxc”}]我已经编辑了我的问题,请检查一下,您将了解需要帮助的issueGlad:)
async createSurvey(streamId, title, specialization, description, answers) {
let token = await getToken();
let url = '/api/survey';
const body = JSON.stringify({
question: {
title: title,
description: description,
specialization: specialization,
answers_attributes: answers.map(answer => ({ answer_text: answer.answer }))
}
});
return fetch(BASE_URL + url, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Token token=' + token
},
body
}).then(res => {
console.log('server response :', res);
return res;
}).catch(err => console.log('Fetch error :', err));
}