внутри и если одну и туже вызывать вызовет 1 раз вместо 2
так вот вопрос как можно сделать так чтобы вызывл все таки 2 раза?
class MyComponent extends React.Component {
state = {
counter: 1,
};
incrementCounter = () => this.setState({ counter: this.state.counter + 1 });
massIncrement = () => {
this.incrementCounter();
this.incrementCounter();
}
}
Весь замес в том, что если ты меняешь стейт через this.setState({ counter: this.state.counter + 1 });, Реакт не может гарантировать, что на момент выполненеия этого кода в this.state.counter будет актуальное значение, поэтому следует использовать this.setState(({counter}) => ({ counter: counter + 1 }));, где ты напрямую обращаешься к предыдущему значению counter
реакт не может вызвать функцию один раз, если в коде она вызывается два раза. она вызывается дважды, только значение стейта на обоих вызовах одно и то же. у тебя пример из доки, там же и решение есть
Обсуждают сегодня