我正在使用Next.js,Reaction Query和Reaction Day Picker with Reaction Hook Form.

我正在使用Reaction查询从一个端点获取一些日期,并且我希望将这些日期设置为 Select 的初始日期.如果我在站点中导航并转到页面,则日期显示为选中.但是,如果我刷新页面,则不会显示日期.我必须导航到另一个页面并导航回以查看选定的日期.

  const {
    data: initialDatesTest,
    error,
    isLoading,
  } = useQuery({
    queryKey: ["dates"],
    queryFn: getDates,
  });
  async function getDates() {
    const response = await fetch("/api/dates-to-exclude");
    const data = await response.json();
    const parsedExcludedDates = data.excludedDates.PartyExcludeDates.map(
      (dateString: string) => new Date(dateString)
    );

    return parsedExcludedDates;
  }

const initialDays: Date[] = initialDatesTest || [];
const [days, setDays] = useState<Date[] | undefined>(initialDays);


      <Controller
        control={control}
        name="DayPicker"
        render={({ field }) => (
          <DayPicker
            mode="multiple"
            min={1}
            selected={days}
            onSelect={setDays}
            footer={footer}
            disabled={{ before: new Date() }}
            numberOfMonths={1}
          />
        )}
      />

推荐答案

这是因为在获取数据之前未定义initialDatesTest,并且仅在第一次渲染时设置初始值.你想打useQuery里的setDays.像这样的东西

const {
  data: initialDatesTest,
  error,
    isLoading,
} = useQuery({
  queryKey: ["dates"],
  queryFn: getDates,
});

async function getDates() {
  const response = await fetch("/api/dates-to-exclude");
  const data = await response.json();
  const parsedExcludedDates = data.excludedDates.PartyExcludeDates.map(
    (dateString: string) => new Date(dateString)
  );

  setDates(parsedExcludedDates); // update state to reflect what was returned from server.

  return parsedExcludedDates;
}

Reactjs相关问答推荐

条件索引路由

cypress 不能点击SPAN

如何在MUI X数据网格列中显示IMG?

我想删除NextJs中的X轴标签APEXCHARTS

在reactjs中刷新页面时丢失状态值

MERN,将动态列表中的元素插入数组

为 Next.js 应用程序目录中的所有页面添加逻辑的全局文件是什么?

为什么在 React 的 useEffect 中使用 onAuthStateChanged ?

使用reactrouterdom时显示"对象无效作为React子组件"错误

React设置上下文并进行导航

React + Redux:数据未正确传递给具有动态路由的组件

顶点图表甜甜圈项目边框半径

使用 Vite 的 React 中的路由无法正常工作(构建中)

NextJS htaccess 设置

添加新行时自动打开可扩展表格(Antd 表格,ReactJS)

如何通过单击多个选项中的特定项目在模态上呈现不同的标题?

Material UI:使用 mui 手风琴时出现props 类型失败:isValidElement 不是函数

如何将我的 ID 值传递给下一个组件?

为什么我在此代码段中看不到 useEffect for count = 1?

npm init vite@latest 和 npm init vite 有什么区别?