Проблема с выбором месяца в React Js

#javascript #reactjs #date #npm #next.js

#javascript #reactjs #Дата #npm #next.js

Вопрос:

Я пытаюсь создать средство выбора месяца, используя библиотеку, react-month-picker

Рабочий код в react: https://codesandbox.io/s/react-month-picker-forked-84rqr

И я скопировал тот же код в следующий проект Js (React SSR) https://codesandbox.io/s/nice-bartik-o5miw но он выдает ошибку как,

недопустимое значение свойства «value» в month-picker

index.js (Код связан только с выбором месяца)

 import React, { useState } from "react";
import ReactDOM from "react-dom";
import ReactMonthPicker from "react-month-picker";
import "react-month-picker/css/month-picker.css";

const MonthPicker = ({ range }) => {
  const [isVisible, setVisibility] = useState(false);
  const [monthYear, setMonthYear] = useState({});

  const showMonthPicker = event => {
    setVisibility(true);
    event.preventDefault();
  };

  const handleOnDismiss = () => {
    setVisibility(false);
  };

  const handleOnChange = (year, month) => {
    setMonthYear({ year, month });
    setVisibility(false);
  };

  const getMonthValue = () => {
    const month = monthYear amp;amp; monthYear.month ? monthYear.month : 0;
    const year = monthYear amp;amp; monthYear.year ? monthYear.year : 0;

    return month amp;amp; year ? `${month}-${year}` : "Select Month";
  };

  return (
    <div className="MonthYearPicker">
      <button onClick={showMonthPicker}>{getMonthValue()}</button>

      <ReactMonthPicker
        show={isVisible}
        lang={[
          "Jan",
          "Feb",
          "Mar",
          "Apr",
          "May",
          "Jun",
          "Jul",
          "Aug",
          "Sep",
          "Oct",
          "Nov",
          "Dec"
        ]}
        years={range}
        value={monthYear}
        onChange={handleOnChange}
        onDismiss={handleOnDismiss}
      />
    </div>
  );
};

function App() {
  const range = {
    min: { year: 2020, month: 3 },
    max: { year: 2025, month: 2 }
  };

  return (
    <div className="App">
      <MonthPicker range={range} />
    </div>
  );
}
  

Кажется простой проблемой, но я не мог понять, где я ошибаюсь.

Проблема в том, что он работает в react codesandbox, но не в следующем JS codesandbox.

Не могли бы вы, пожалуйста, помочь мне выбрать месяц и год из средства выбора?

Комментарии:

1. Насколько я могу видеть из документов, нет способа установить пустое значение. Я думаю, что value начало пустого объекта является источником вашей ошибки.

2. @radovix, не могли бы вы проверить это codesandbox.io/s/react-month-picker-forked-84rqr ??

3. @radovix, спасибо за ваш ответ.. Не могли бы вы помочь мне исправить это, пожалуйста?

4. Это не работает. Не уверен, как это исправить на next.js . Извините.

5. Эй, можете ли вы предоставить нам следующий проект Js, который можно редактировать? Что-то вроде ссылки из нескольких комментариев выше.

Ответ №1:

const [MonthYear, setMonthYear] = useState({месяц: «, год: 0});