Size: a a a

React — русскоговорящее сообщество

2020 December 25

I,

If you can do it bet... in React — русскоговорящее сообщество
вот по дефолту ставит как то что нетфликс допустим и youtube
источник

DC

Dmitriy Code in React — русскоговорящее сообщество
Коллеги, добрый день.
Вроде не деревянный, принципы работы React понимаю.

Так вот проблема.
У меня есть компонент фильтра.
В который я передаю через пропсы массив обьектов и на основе этого массива формируется таблица для фильтра (Например поля ввода названия, или выбор (Select) статусов заказа.
И тут я в родительском компоненте, меняю этот объект и данные в таблице фильтров обновляются, но только в случае если это Select то в самом поле данные не обновляются.
Не могу понять в чем причина. Использую : https://ant.design/components/select/

Вот пример как генерируется компонент Select:
const selectedValues = (value as Option[]).map(x => x.value);
       const enableOptions = options!.filter(
         x => !selectedValues.includes(x.value)
       );
       const element = (
         <Select
           mode="multiple"
           placeholder={label}
           value={value as Option[]}
           options={enableOptions}
           labelInValue
         />
       );
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Dmitriy Code
Коллеги, добрый день.
Вроде не деревянный, принципы работы React понимаю.

Так вот проблема.
У меня есть компонент фильтра.
В который я передаю через пропсы массив обьектов и на основе этого массива формируется таблица для фильтра (Например поля ввода названия, или выбор (Select) статусов заказа.
И тут я в родительском компоненте, меняю этот объект и данные в таблице фильтров обновляются, но только в случае если это Select то в самом поле данные не обновляются.
Не могу понять в чем причина. Использую : https://ant.design/components/select/

Вот пример как генерируется компонент Select:
const selectedValues = (value as Option[]).map(x => x.value);
       const enableOptions = options!.filter(
         x => !selectedValues.includes(x.value)
       );
       const element = (
         <Select
           mode="multiple"
           placeholder={label}
           value={value as Option[]}
           options={enableOptions}
           labelInValue
         />
       );
Как объект меняешь?
источник

DC

Dmitriy Code in React — русскоговорящее сообщество
value это массив объектов. Я туда добавляю новый обьект.
источник

DC

Dmitriy Code in React — русскоговорящее сообщество
>
           {enableOptions.map(x => (
             <Select.Option value={x.value} key={x.key} label={x.label}>
               {x.label}
             </Select.Option>
           ))}
         </Select>


Сделал вот так, и теперь все обновляется
источник

AE

Aliw E. in React — русскоговорящее сообщество
Народ как поставить значение в селект? игнорирует все
источник

И

Иван in React — русскоговорящее сообщество
Aliw E.
Народ как поставить значение в селект? игнорирует все
value у поля
источник

AE

Aliw E. in React — русскоговорящее сообщество
пробую, игнорирует
источник

IZ

Ivan Zaikin in React — русскоговорящее сообщество
Ну мейби какой-то selectedIndex, так навскидку
источник

RS

Roman Still in React — русскоговорящее сообщество
Aliw E.
Народ как поставить значение в селект? игнорирует все
вероятно надо смотреть доку либы?
источник

AE

Aliw E. in React — русскоговорящее сообщество
Roman Still
вероятно надо смотреть доку либы?
спасибо))
источник

И

Иван in React — русскоговорящее сообщество
Aliw E.
Народ как поставить значение в селект? игнорирует все
А почему ты TextField используешь в качестве селекта?
источник

VV

Varuj Varuj in React — русскоговорящее сообщество
Здравствуйте помогите с проблемой нужно чтоб во время монтирования компонента effect сработал но когда компонент монтируется ещё раз effect не должен сработать
источник

VV

Varuj Varuj in React — русскоговорящее сообщество
Как реализовать?
источник

RS

Roman Still in React — русскоговорящее сообщество
2 раза монтируется?
источник

AA

Andrey Anelkin in React — русскоговорящее сообщество
Varuj Varuj
Здравствуйте помогите с проблемой нужно чтоб во время монтирования компонента effect сработал но когда компонент монтируется ещё раз effect не должен сработать
useEffect(()=>{},[]);
источник

VV

Varuj Varuj in React — русскоговорящее сообщество
Roman Still
2 раза монтируется?
Ну роут меняться и он может снова смонтироваться
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Varuj Varuj
Здравствуйте помогите с проблемой нужно чтоб во время монтирования компонента effect сработал но когда компонент монтируется ещё раз effect не должен сработать
Используй стейт менеджер или где то выше по дереву сохраняй инфу о том что эффект уже вызывался
источник

AA

Andrey Anelkin in React — русскоговорящее сообщество
Varuj Varuj
Ну роут меняться и он может снова смонтироваться
Тогда только последний предложений вариант с сохранением данных не там, где ты хранишь( стейт менеджер или выше).
источник

AA

Andrey Anelkin in React — русскоговорящее сообщество
Либо, если это все невозможно( не могу придумать причину), то делай проверку внутри эффекта :)
источник