如何从JSON REST API响应设置默认复选框值(来自Axios/React)

bsxbgnwa  于 2023-01-27  发布在  iOS
关注(0)|答案(1)|浏览(72)

我有一个API,其输出如下所示,我将其保存在名为allDiseases的状态中‍ allDiseases

[
   {
     disease_id: 1,
     unique_name: "1Mealybugs",
     title: "title1",
     show_status: "publish",
   },
   {
     disease_id: 2,
     unique_name: "Mealybugs",
     title: "title2",
     show_status: "draft",
   },
 ];

我使用下面的代码来显示项目,并且我希望在show_status的值等于draft时取消选中它,在其值等于publish时选中它
我该怎么做呢?

<tbody>
                    {allDiseases.map((item) => {
                      return (
                        <tr>
                          <td>
                              {item.title}
                          </td>
                          <td>{item.unique_name}</td>

                          <td>
                            <input
                              className="checkHeight"
                              defaultChecked={false}
                              type="checkbox"
                              value={item.show_status}
                              id="defaultCheck1"
                              onChange={()=> activePost(item.disease_id)}
                            />
                          </td>
                        </tr>
                      );
                    })}
                  </tbody>

onChange(activePost)中有一个API,在执行时会更改showStatus的值

const activePost = async (idPost) => {
    try {
      const api = "localhost/website/disease/change-show-status";
      const { data } = await axios.post(api,{
        disease_id: idPost
      }, {
        headers: { Authorization: `Bearer ${token}` },
      });
      console.log(data);
      toast.success(data.message, { autoClose: 15000 });
    } catch (e) {
      console.log(e);
      toast.error(e.response.data.error, { autoClose: 15000 });
    }
  };
fnvucqvd

fnvucqvd1#

如果在defaultChecked中使用三元语句,则它应该工作。

<tbody>
    {allDiseases.map((item) => {
        return (
            <tr>
                <td>
                    {item.title}
                </td>
                <td>{item.unique_name}</td>

                <td>
                    <input
                        className="checkHeight"
                        defaultChecked={item.show_status === "draft"}
                        type="checkbox"
                        value={item.show_status}
                        id="defaultCheck1"
                        onChange={()=> activePost(item.disease_id)}
                     />
                </td>
            </tr>
        );
    })}
</tbody>

相关问题