Добавить / удалить 1 день с моментом. js в реакции - PullRequest
0 голосов
/ 25 марта 2020

У меня есть div с двумя датами внутри, например (<25 марта - 26 марта>), и есть 2 стрелки "<" и ">"

Если пользователь нажимает "<" стрелка, мне нужно удалить 1 день до 2 дат: (<25 марта - 26 марта>) становится (<24 марта - 25 марта>),

, и если пользователь нажимает стрелку «>», Мне нужно добавить 1 день к 2 датам: (<25 марта - 26 марта>) становится (<26 марта - 27 марта>),

Я хранил 2 даты в хуках, и по умолчанию firstValue - это сегодняшний день, а secondValue - на 1 неделю позже

const [firstValue, setFirstValue] = useState(
    moment(new Date()).format("dddd Do MMMM YYYY")
  );
const [secondValue, setSecondValue] = useState(
    moment(new Date())
      .add(1, "weeks")
      .format("dddd Do MMMM YYYY")
);

Я пытался это сделать, когда пользователь нажимает стрелку "<": </p>

function previousDay() {
    console.log(firstValue, secondValue);
    setFirstValue(moment(firstValue).remove(1, "days"));
    setSecondValue(moment(secondValue).remove(1, "days"));
}

, но у меня ошибка

TypeError: moment__WEBPACK_IMPORTED_MODULE_2___default(...)(...).remove is not a function

Может кто-нибудь знает, как я могу это сделать

Ответы [ 2 ]

1 голос
/ 25 марта 2020

На основании моих комментариев я бы предложил следующие изменения:

const [firstValue, setFirstValue] = useState(
    moment(new Date()) // remove .format() here
  );
const [secondValue, setSecondValue] = useState(
    moment(new Date())
      .add(1, "weeks")
);

На вашем рендере:

render() {
  <>
    ...
    ...
    {firstValue.format("dddd Do MMMM YYYY")}
  </>
}

И ваша функция должна выглядеть примерно так:

function previousDay() {
    setFirstValue(firstValue.subtract(1, "days")); // don't need to moment() anymore
    setSecondValue(secondValue.subtract(1, "days"));
}
0 голосов
/ 25 марта 2020

Изменить на:

function previousDay() {
    console.log(firstValue, secondValue);
    setFirstValue(moment(firstValue).subtract(1, "days"));
    setSecondValue(moment(secondValue).subtract(1, "days"));
}

Поскольку «удалить» - это , а не допустимое свойство [Момент объекта].

...