Является ли передача «реквизита» за пределы объекта реквизита антипаттерном? - PullRequest
1 голос
/ 05 ноября 2019

Я использую AntD <Table /> компонент. Когда я генерирую столбцы, я хочу передать пользовательские реквизиты в свои ячейки, которые не являются частью данных, которые я передаю в таблицу. Это могут быть такие темы, как тема, цветовая палитра, настройка макета и т. Д.

Каждый столбец представлен объектом и имеет метод render. AntD перебирает строки и столбцы и передает record этой строки для рендеринга с помощью заданного cell.

{
   ... // keys like `key`, `title`, `dataIndex` ...
   render: (record) => {...}
}

Вместо того, чтобы передавать мои дополнительные реквизиты непосредственно самому компоненту следующим образом:

{
   ... // keys like `key`, `title`, `dataIndex` ...
   render: (record) => <MyCell {...record} extraProp={extraProp} extraProp2={extraProp2} />
}

У меня появилась привычка писать что-то вроде этого:

{
   ... // keys like `key`, `title`, `dataIndex` ...
   render: MyCell(extraProp, extraProp2)
}

Где MyCell определяется как:

const MyCell = (extrProp, extraProp2) => props => {...}

Должен ли я придерживаться регулярного использованияреквизит? Или это нормально, если я передам свой дополнительный реквизит, как это?

Это приведет к плохой производительности? Будет ли это кусать меня в будущем, давая мне ошибки, которые трудно отследить?

Спасибо

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