Передать диспетчер состояний в качестве опоры дочернему компоненту - PullRequest
1 голос
/ 03 июля 2019

Могу ли я передать диспетчер состояний (второй аргумент из useState) в качестве реквизита для дочернего компонента. Это антипаттерн или допустимая практика?

Например. У меня есть компонент TextField. Я использую это везде. И все, что мне нужно, сохранить его ценность для государства. Например:

import { default as React, setState, useCallback } from 'react';
import { TextField } from '@component';

const SomeComponent = (props) => {
  const [value, setValue] = useState('');

 const handleChange = useCallback((e) => setValue(e.target.value), []);

  return (
    <div>
      <TextField onChange={handleChange} />
    </div>
  )
}

Я устал писать везде handleChange, когда TextField использовал ... Я хочу сделать этот случай максимально простым.

Могу ли я передать setValue в TextField в качестве реквизита (вместо добавления onChange) и реализовать значение параметра внутри TextField?

// ...
  <TextField valueDispatcher={setValue} />
//...

1 Ответ

0 голосов
/ 03 июля 2019

Да.

Вы можете передать setValue в качестве реквизита дочернему компоненту. Из дочернего компонента вы можете установить значение.

Рабочая демоверсия

...