首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React日历月视图更改

React日历月视图更改
EN

Stack Overflow用户
提问于 2021-07-21 00:57:18
回答 1查看 1.8K关注 0票数 0

我使用的是反应-日历,无法更改月份,只需单击显示月份名称的导航面板中的箭头(后退/前进)。我的代码:

代码语言:javascript
复制
...
  const onActiveStartDateChangeHandler = ({ activeStartDate, value, view }) => {
    console.log("vv:", activeStartDate, value, view);
  };

...
  return (
    <div className="popupFormSelector arrowLft pb-8">
      <h2 className="text-center font-bold mt-7 mb-5">Set a deadline</h2>
      <Delete classes="right-5 top-5" onClickHandler={toggleCalendar} />
      <Calendar
        activeStartDate={teamStartDate}
        calendarType="US"
        defaultView="month"
        maxDetail="month"
        maxDate={endDate}
        minDate={teamStartDate}
        next2Label={null}
        onActiveStartDateChange={onActiveStartDateChangeHandler}
        onChange={onChangeHandler}
        prev2Label={null}
        selectRange={false}
        showDoubleView={false}
        showFixedNumberOfWeeks={false}
        showNavigation={true}
        showNeighboringMonth={true}
        tileClassName={tileClasses}
        tileDisabled={({ activeStartDate, date, view }) =>
          date < teamStartDate || date > endDate
        }
        value={new Date()}
        view={"month"}
      />

从console.log对onActiveStartDateChange的处理程序中,我可以看到日志中更改了日期,但是视图停留在当前月份。我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2022-01-06 12:46:15

月份视图不会更改,因为它与您在这里提供的值相关联:

activeStartDate={teamStartDate}

正如文档中所述,这会引发一种“受控”行为:

activeStartDate应显示的句点的开始。如果您希望以一种不受控制的方式使用React,请使用defaultActiveStartDate。

因此,如果与用例匹配,可以使用defaultActiveStartDate而不是activeStartDate,或者只需在方法中更新teamStartDate的值,如下所示:

代码语言:javascript
复制
const onActiveStartDateChange = ({activeStartDate}) => teamStartDate = activeStartDate
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68462855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档