为什么当我在 React 中使用短路设置表单输入的默认值时会出现错误?

why am i getting error when i m using short circuit to set default value for form input in react?

提问人:kamyarDreamer 提问时间:10/21/2023 更新时间:10/21/2023 访问量:13

问:

我正在创建表单组件以在 2 个不同的页面中使用表单,我想检查 is 值是否为查找设置它或给它一个空字符串,但它不起作用 whem 短路正在使用或三元运算符

这是我的代码:

import { useNavigate } from "react-router-dom";

import classes from "./EventForm.module.css";

function EventForm({ method, event }) {
  const navigate = useNavigate();
  function cancelHandler() {
    navigate("..");
  }

  return (
    <form className={classes.form}>
      <p>
        <label htmlFor="title">Title</label>
        <input
          id="title"
          type="text"
          name="title"
          required
          defaultValue={event.title || ""} // this line 
        />
      </p>
      <p>
        <label htmlFor="image">Image</label>
        <input
          id="image"
          type="url"
          name="image"
          required
          defaultValue={event.image || ""}
        />
      </p>
      <p>
        <label htmlFor="date">Date</label>
        <input
          id="date"
          type="date"
          name="date"
          required
          defaultValue={event.date || ""}
        />
      </p>
      <p>
        <label htmlFor="description">Description</label>
        <textarea
          id="description"
          name="description"
          rows="5"
          required
          defaultValue={event.description || ""}
        />
      </p>
      <div className={classes.actions}>
        <button type="button" onClick={cancelHandler}>
          Cancel
        </button>
        <button>Save</button>
      </div>
    </form>
  );
}

export default EventForm;

我收到这个错误:无法读取未定义的属性(读取“标题”),而它应该被修复

我尝试了三元运算符和短路,但它只会导致故障

reactjs 错误处理 jsx 逻辑运算符 短路

评论


答:

0赞 vctqs1 10/21/2023 #1

它被抛出错误,因为你的力量是或eventnullundefined

错误说: -> 这意味着 undefined.title 崩溃Cannot read properties of undefined (reading 'title')

有很多方法可以修复它。