reactjs 有人能解释一下下面的代码吗,特别是参数(index)=>(e)=>

pn9klfpd  于 2023-02-12  发布在  React
关注(0)|答案(2)|浏览(120)

我是一个新手,所以我遇到了这段代码,我不明白这段代码的两个参数,这是什么意思?

// App.js
const updateState = (index) => (e) => {
  const newArray = data.map((item, i) => {
    if (index === i) {
      return { ...item, [e.target.name]: e.target.value };
    } else {
      return item;
    }
  });
  setData(newArray);
  };
4jb9z9bj

4jb9z9bj1#

这是结束的一部分。参考这篇文章。

cnjp1d6j

cnjp1d6j2#

它是一个返回函数的函数。它等价于

const updateState = (index) => {
  const func = (e) => {
    const newArray = data.map((item, i) => {
      if (index === i) {
        return { ...item, [e.target.name]: e.target.value };
      } else {
        return item;
      }
    });
    setData(newArray);
  }
  return func;
}

因此,这可以称为例如:

updateState(1)({foo:'bar'})
// index === 1
// e === {foo:'bar'}

const updateStateAtIndex = updateState(1);
const result = updateStateAtIndex({foo: 'bar')}

在您的例子中,e是一个事件,所以我假设它是在某种动态表单中使用的:)

相关问题