#reactjs #checkbox #react-table
Вопрос:
Я добавил переключатель в заголовок своей таблицы react, и даже когда состояние явно меняется, swithc просто не переключается, есть идеи?
Вот код:
function DefaultParametersRowContent({ data, impactFields, onClickHandler, content }: any) {
console.log(content);
const columns = React.useMemo(
() => [
{
Header: "",
accessor: "name",
},
{
Header: "",
accessor: 'action2',
type: "switch",
Cell: (row: { row: { original: any; }; }) => (
<span >
<div className='menupolicy__form--switch'>
<label className='switch'>
<input
type='checkbox'
checked={content}
onChange={() => onClickHandler()} />
<span className='switch__slider round'></span>
</label>
</div>
</span>
),
},
{
Header: () => null,
id: 'expander',
Cell: ({ row }: any) => (
<span {...row.getToggleRowExpandedProps()}>
{row.isExpanded ? <FaChevronUp /> : <FaChevronDown />}
</span>
),
}
],
[]
);
Зарегистрированный bool-это значение согласия, я переключал его несколько раз, и, как вы можете видеть, меняется состояние, но не сам переключатель
Комментарии:
1. попробуйте удалить useMemo или добавить зависимость в массив useMemo
2. Да!!! вот оно что! Большое тебе спасибо, Раман!
3. Как это мешало коммутатору работать, кстати? Я попытался изменить флажок prop на значение prop, и тогда это сработало, но в процессе отключил вызов api
4. изменение реквизита приводит к повторному отображению компонента, но ваши столбцы остались такими же, как и раньше, из-за useMemo