Size: a a a

JavaScript.Ninja

2020 August 12

P

Pavel in JavaScript.Ninja
Illya Klymov
Там все написано что делать
Спасибо, изучаю :)
источник

PA

Pavlo Anichin in JavaScript.Ninja
Подскажите, а как правильно прописать с useEffect вот такое:

 componentDidMount() {
   let oldState = JSON.parse(localStorage.getItem('state'));
   this.setState({ ...this.state, ...oldState });
 }

 componentDidUpdate() {
   localStorage.setItem('state', JSON.stringify({ ...this.state }));
 }
источник

PA

Pavlo Anichin in JavaScript.Ninja
Так правильно?

 useEffect(() => {
   let oldState = JSON.parse(localStorage.getItem('state'));
   this.setState({ ...this.state, ...oldState });
 }, [localStorage.setItem('state', JSON.stringify({ ...this.state }))])
источник

IK

Illya Klymov in JavaScript.Ninja
Pavlo Anichin
Так правильно?

 useEffect(() => {
   let oldState = JSON.parse(localStorage.getItem('state'));
   this.setState({ ...this.state, ...oldState });
 }, [localStorage.setItem('state', JSON.stringify({ ...this.state }))])
Нет, вы пытаетесь в завимостчх передать setItem
источник

VI

Volodymyr Igorevich in JavaScript.Ninja
Pavlo Anichin
Так правильно?

 useEffect(() => {
   let oldState = JSON.parse(localStorage.getItem('state'));
   this.setState({ ...this.state, ...oldState });
 }, [localStorage.setItem('state', JSON.stringify({ ...this.state }))])
У тебя в функциональном компоненте нет this, и нет setState.
источник

PA

Pavlo Anichin in JavaScript.Ninja
Понял, спасибо, подскажите, а как тогда через useEffect делать какое-то действие при каждом обновлении компонента, как в componentDidUpdate?
источник

AD

Alexander Dorogin in JavaScript.Ninja
тут два хука получаются, последний массив - это массив зависимостей, почитай лучше в доке про это
из did mount:
 useEffect(() => {
  let oldState = JSON.parse(localStorage.getItem('state'));
   this.setState({ ...this.state, ...oldState })
 }, [])
// пустой массив показывает что следить на зависимостями не надо, => он сработает только один раз

и второй
useEffect(() => {
      localStorage.setItem('state', JSON.stringify({ ...state }));
 }, [state])
источник

AD

Alexander Dorogin in JavaScript.Ninja
нужно указать в массиве зависимостей нужную тебе зависимость
источник

VI

Volodymyr Igorevich in JavaScript.Ninja
Pavlo Anichin
Понял, спасибо, подскажите, а как тогда через useEffect делать какое-то действие при каждом обновлении компонента, как в componentDidUpdate?
useEffect(()=> {}, [])
источник

PA

Pavlo Anichin in JavaScript.Ninja
Alexander Dorogin
тут два хука получаются, последний массив - это массив зависимостей, почитай лучше в доке про это
из did mount:
 useEffect(() => {
  let oldState = JSON.parse(localStorage.getItem('state'));
   this.setState({ ...this.state, ...oldState })
 }, [])
// пустой массив показывает что следить на зависимостями не надо, => он сработает только один раз

и второй
useEffect(() => {
      localStorage.setItem('state', JSON.stringify({ ...state }));
 }, [state])
Вот, понял, спасибо огромнейшее)
источник

AD

Alexander Dorogin in JavaScript.Ninja
только useState заюзай там еще, this у функциональных нету
источник

PA

Pavlo Anichin in JavaScript.Ninja
👌понял, ещё раз спс)
источник

AP

Alexander Podkidyshe... in JavaScript.Ninja
У реакта уже и дока на русском, всё равно никто не читает (((-:
источник

VI

Volodymyr Igorevich in JavaScript.Ninja
Alexander Podkidyshev
У реакта уже и дока на русском, всё равно никто не читает (((-:
А зачем, чатик же есть.
источник

PA

Pavlo Anichin in JavaScript.Ninja
Честно говоря, сначала её читаю, но не нашёл, плохо искал, извините за беспокойство, я только учусь :)
источник

VI

Volodymyr Igorevich in JavaScript.Ninja
Pavlo Anichin
Честно говоря, сначала её читаю, но не нашёл, плохо искал, извините за беспокойство, я только учусь :)
источник

VI

Volodymyr Igorevich in JavaScript.Ninja
Да ну как тебе сказать первый запрос в Гугл
источник

t

tlp in JavaScript.Ninja
Привет!
Подскажите, есть ли какие то способы сделать таймер отсчета где есть дни, часы, секунды, более оптимизированным?
Потому что на каждом интервале просчет идет, может быть вы сталкивались с таким?Если два таймера запустить, они начинают лагать
источник

t

tlp in JavaScript.Ninja
в данном случае используется сетИнтервал
источник

SN

Smekalin Nikolay in JavaScript.Ninja
запускать 2 интервала одновременно не сильно хорошая идея...
этого момента никак нельзя избежать?
источник