axios 更新react with condition语句中的对象

taor4pac  于 2022-11-05  发布在  iOS
关注(0)|答案(1)|浏览(144)

我更新状态,如果有一个条件的评论?。长度,我只想更新评论,如果有一个长度的评论,一切工作正常,但我有一个问题。我可以做这个条件更容易?我的意思是没有Map2次。

const changeStatus = (id, status,comment) => {
    axios
      .post("http://localhost:5000/changeStatus", {
        id: id,
        status: status,
        comment: comment,
      })
      .then((res) => {
          comment?.length
            ? setStatus(
                status.map((val) => {
                  return val.id == id
                    ? {
                        ...val,
                        status: status,
                        comment: comment
                      }
                    : val;
                })
              ) : setStatus(
                status.map((val) => {
                  return val.id == id
                    ? {
                        ...val,
                        status: status,
                      }
                    : val;
                })
              );
cpjpxq1n

cpjpxq1n1#

我认为您只需Map一次,然后将条件放入对象中

.then((res) => {
  setStatus(status.map((val) => {
    if(val.id === id){
      return {
        ...val,
        status: status,
        comment: comment.length ? comment : null
      }
    }
    return val
  })
}

相关问题