javascript - 仅更新我更改其他状态的日期不应更新或更改 ReactJS/React-Hooks

标签 javascript datepicker react-hooks react-datepicker

通过 react 钩子(Hook)的新概念,我想发布一些我正在使用 useState future 的数据,所以当我更改日期时,其他日期也会更新我选择的内容。我希望它仅更新相关日期。如果我更改 planRegisterStartDate 以便其他人不会影响我该怎么做我使用react-datepicker包


const [planGroupData, setPlanGroupData] = useState({
    planGroupName: '',
    PlanGroupYear: '',
    planRegisterStartDate: new Date(),
    planRegisterFinishDate: new Date(),
    projeRegisterStartDate: new Date(),
    projeRegisterFinishDate: new Date()
  })

  const onPlanGroupDateChange = date => {
    setPlanGroupData({
      planRegisterStartDate: date,
      planRegisterFinishDate: date,
      projeRegisterStartDate: date,
      projeRegisterFinishDate: date
    })
  }
const {
    PlanGroupYear,
    planGroupName,
    planRegisterFinishDate,
    planRegisterStartDate,
    projeRegisterFinishDate,
    projeRegisterStartDate
  } = planGroupData

 return (
 <div className='form-row'>
          <DatePicker
            selected={planRegisterStartDate}
            onChange={onPlanGroupDateChange}
          />
 <DatePicker
            selected={planRegisterFinishDate}
            onChange={onPlanGroupDateChange}
          />
        </div>
)

最佳答案

您可以分离状态并单独定义集合函数,然后可以在各自的组件中调用这些函数。我认为这会更容易管理。

const [planGroupName, setPlanGroupName] = useState(null)
const [planGroupYear, setPlanGroupYear] = useState(null)
const [planRegisterStartDate, setPlanRegisterStartDate] = useState(new Date())
const [planRegisterFinishDate, setPlanRegisterFinishDate] = useState(new Date())
const [projeRegisterStartDate, setProjeRegisterStartDate] = useState(new Date())
const [projeRegisterFinishDate, setProjeRegisterFinishDate] = useState(new Date())


<DatePicker selected={planRegisterStartDate}
            onChange={date => setPlanRegisterStartDate(date)} />
<DatePicker selected={planRegisterFinishDate} 
             onChange={date => setPlanRegisterFinishDate(date)} />

关于javascript - 仅更新我更改其他状态的日期不应更新或更改 ReactJS/React-Hooks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58099044/

相关文章:

javascript - API : How to pass an array?的POST方法

javascript - React.JS - 子组件在接收 Prop 时不更新(功能组件)

javascript - 如何使用jquery选择DOM元素

javascript - ExtJS 5 - 如何将对象转换为 Collection/MixedCollection/HashMap?

javascript - es6 中 Map 和 WeakMap 集合的垃圾收集

user-interface - Java datePicker - 如何在 JTextfield 中设置默认日期

javascript - 如何更改日期选择器的下一个和上一个箭头周围的颜色?

javascript - 如何将 yy-mm-dd 日期选择器帖子格式化为 php?

reactjs - GraphQL Apollo React Hooks 查询根据初始化顺序返回 null

reactjs - 如何将 firebase 与 React 功能组件同步?