Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在POST方法的json文件中使用map时创建调查问题_Arrays_Reactjs_Api_React Native - Fatal编程技术网

Arrays 在POST方法的json文件中使用map时创建调查问题

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”}] 标题

我使用的是这段代码,地图是针对answers_属性的,因此它创建的调查与answers.length的数量相同。所以我想避免重复。我只想为答案属性添加地图。请为我建议任何解决方案

编辑:

当我传递数据时:

标题:“Api测试”, 说明:“api说明”, 专门化:“Api专门化”, 答案=[{答案文本:“答案1”},{答案文本:“答案2”}]

我正在获取输出:
标题:“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));
}