Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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
Reactjs 在迭代过程中插入列表数据(映射)_Reactjs_Typescript - Fatal编程技术网

Reactjs 在迭代过程中插入列表数据(映射)

Reactjs 在迭代过程中插入列表数据(映射),reactjs,typescript,Reactjs,Typescript,在这里,我试图在迭代过程中修改我的数据,并将一些结果发送给API调用 API调用接收具有结构化数据格式的请求,该格式为 { list: [{ id: "1", name: "Hello" }, ... ] } 不知何故,我设法用单个数据调用了API(在我当前的代码中,const params只接受单个数据) 但现在必须使用多个数据来完成,例如: { list: [{ id: "1", name: "Hello"

在这里,我试图在迭代过程中修改我的数据,并将一些结果发送给API调用

API调用接收具有结构化数据格式的请求,该格式为

{ list: [{ id: "1", name: "Hello"  }, ... ] } 
不知何故,我设法用单个数据调用了API(在我当前的代码中,const params只接受单个数据)

但现在必须使用多个数据来完成,例如:

{ list: [{ id: "1", name: "Hello"  }, { id: "22", name: "Ed"  }, { id: "36", name: "Jason"  } ... ] } 
这是我目前的代码

const [table, setTalbe] = useState(..);   // assume, we have some table data here

const processNow = () => {
  
    let id = 0;
    let name = '';

    // if table length is greater than 1, we go for the loop.
    if (table.length >= 1) {
      table.map(data => {
        id = data.userId;
        name = data.userName;
      });

      //insert table data to params, here I want to add whole table data into "list"
      //the final result of this list should be something like this
      //ex ) list: [{ id: '123', name: 'Josh' }, { id: '125', name: 'Sue' }, { id: '2222', name: 'Paker' } ...],
      // but how??

      const params: any = {
        list: [
          {
            id: id,
            name: name
          },
        ],
      };
    
      //send PUT reqeust with params
      axios
        .put(
          '/api/v1/tosent',
          params,
        )
        .then(res => {
          console.log('The response', res);
        })
        .catch(err => {
          console.log('The error: ', err);
        });
    }
  };
但是我被它卡住了,请帮我完成这个代码以正常工作。
需要您的建议。

Array.prototype.map
返回一个新数组,其中您传递的函数应用于每个元素。你应该研究这个词来了解它的用法

当前代码与映射返回值无关:

      table.map(data => {
        id = data.userId;
        name = data.userName;
      });
您可能假设
.map
会对数据进行变异,就像在原地更改一样。相反,整个操作返回一个新数组

看起来您希望执行以下操作:

      const list = table.map(data => {
        return {
          id: data.userId,
          name: data.userName
        }
      });
这是对数组中的每个元素应用一个函数,该函数将每个元素映射到一个新对象,并使用
id
name
键匹配您的问题。然后,看起来您希望将
map
(我们在上面将其命名为
list
)的返回值传递给您的呼叫:

      const params: any = {
        list: list
      };

Array.prototype.map
返回一个新数组,将传递的函数应用于每个元素。你应该研究这个词来了解它的用法

当前代码与映射返回值无关:

      table.map(data => {
        id = data.userId;
        name = data.userName;
      });
您可能假设
.map
会对数据进行变异,就像在原地更改一样。相反,整个操作返回一个新数组

看起来您希望执行以下操作:

      const list = table.map(data => {
        return {
          id: data.userId,
          name: data.userName
        }
      });
这是对数组中的每个元素应用一个函数,该函数将每个元素映射到一个新对象,并使用
id
name
键匹配您的问题。然后,看起来您希望将
map
(我们在上面将其命名为
list
)的返回值传递给您的呼叫:

      const params: any = {
        list: list
      };

谢谢你提供的详细信息。它解决了我的密码。谢谢你提供的超级详细信息。它解决了我的密码。