Обработчики событий в реагируют компоненты не сохраняющие состояние

При попытке выяснить оптимальный способ создать обработчики событий в Реагируют компоненты не сохраняющие состояние. Я мог сделать что-то вроде этого:

const myComponent = (props) => {
    const myHandler = (e) => props.dispatch(something());
    return (
        <button onClick={myHandler}>Click Me</button>
    );
}

Недостаток, здесь являющийся, которым каждый раз этот компонент представляется, новая функция "myHandler", создается. Существует ли лучший способ создать обработчики событий в компонентах не сохраняющих состояние, которые могут все еще получить доступ к свойствам компонента?

61
задан 1 September 2016 в 02:37

2 ответа

Как для компонента не сохраняющего состояние, просто добавьте функцию -

function addName(){
   console.log("name is added")
}

, и это называют в возврате как onChange={addName}

1
ответ дан 31 October 2019 в 15:49

Как насчет чего-то вроде этого:

let __memo = null;
const myHandler = props => {
  if (!__memo) __memo = e => props.dispatch(something());
  return __memo;
}

const myComponent = props => {
  return (
    <button onClick={myHandler(props)}>Click Me</button>
  );
}

, но действительно это - излишество, если Вы не должны передавать onClick более низким/внутренним компонентам, как в примере.

0
ответ дан 31 October 2019 в 15:49

Другие вопросы по тегам:

Похожие вопросы: