Я довольно новичок в реактиве и столкнулся с проблемой при использовании метода onChange
на поле ввода, которое генерируется большим каталогом данных.
Поскольку parentcomponent
является владельцем данных, я предоставляю метод handleUpdate()
дочернему компоненту (dataTableComponent).
Поскольку React должен перезагрузить весь datatgrid, вход onChange
работает очень медленно.
Как бы я сделал это лучше? Есть ли способ обновить только одну измененную строку. Или что мне не так реагировать?Реагирование медленное на изменение ввода
Описание: ParentComponent содержит массив с объектами, который передается дочернему компоненту. ChildComponent создает элемент <table>
с атрибутами объектов данных в виде столбцов. Один столбец редактируется и отображается как тэг <input>
. Этот тег имеет onChangehandler
, указывающий на функцию, переданную родителем. Таким образом, родитель обрабатывает обновление и, следовательно, редертирует весь список. Для меня ясно, что это должно быть медленным. НО, как я мог сделать это лучше?
Вы можете использовать компонент более высокого порядка с функцией в качестве реквизита, позже вы объявляете функцию и передаете информацию об этом вместо этого, таким образом вы избегаете использования состояния, и вместо этого вы используете реквизит, где вы используете свою функцию, когда вам это нужно –
Разве мы не должны избегать смешивания реквизита и состояния? С вашим решением у меня были бы данные redundat? – Marc
Это будет однократная инициализация в конструкторе, после чего вы только установили состояния –