Мне было интересно, можно ли условно обернуть компонент React без потери состояния дочерних элементов.
В песочнице вы можете увидеть несколько раз нажав кнопку «Увеличение», а затем «Обтекание». «Дети» или «Развернуть детей», счетчик сбрасывается.
https://codesandbox.io/s/fervent-herschel-f62e2?file= / src / App. js
Соответствующий код можно увидеть здесь :
const ConditionalWrap = ({ condition, children }) => {
return (
<Fragment>
{condition ? (
<div>{children}</div>
) : (
children
)}
</Fragment>
);
};
Может кто-нибудь указать мне на ресурс, почему это происходит? Я думаю, что родительское дерево должно оставаться прежним, я просто хотел бы знать, почему.
Есть ли какой-нибудь способ сохранить состояние всех children
при их условном переносе? в элементе или поставщике контекста?