Как сделать реквизиты доступными для обработчиков элементов, не передавая их в качестве параметров? - PullRequest
0 голосов
/ 17 апреля 2020

Когда я ранее работал с React, я использовал компоненты класса. Но теперь я использую такие функциональные компоненты, как это:

type Props = {
    setSvg: (svg: string) => void;
    svg: string;
};

function svgTextAreaOnChangeHandler(
  e: React.ChangeEvent<HTMLTextAreaElement>,
  cb: (svg: string) => void
) {
  cb(e.target.value);
}

export default function Converter(props: Props) {
    <textarea
        value={svg}
        onChange={e => svgTextAreaOnChangeHandler(e, setSvg)}
        rows={20}
        cols={50}
    />
}

Я хотел бы объявлять обработчики как svgTextAreaOnChangeHandler вне компонента, а не как встроенные. Но затем я должен передать им реквизиты, как я передаю реквизит setSvg в приведенном выше примере.

Есть ли лучший шаблон, который позволил бы мне объявлять обработчики вне компонента, не передавая ему реквизиты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...