Destell
@Destell
React, React Native junior developer

Можно ли опционально заменять теги в компоненте React?

Делаю на react адресную книгу с карточками, по которым идет поиск, сортировка, могут редактироваться и т.д. Подумал, что, компоненты такого типа должны быть формами, т.е. каждая карточка - форма, но становиться таковыми должны при нажатии на "редактировать" (div => form). Как это можно адекватно реализовать? Просто сделать два компонента на редактирование и статику?
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
kshshe
@kshshe
Frontend developer
const Form = ({ children, ...rest }) => <form {...rest}>{children}</form>;
const Div = ({ children, ...rest }) => <div {...rest}>{children}</div>;

const Card = ({ editable }) => {
  const Container = editable ? Form : Div;
  return <Container>{"Тут ваш контент"}</Container>;
};

ReactDOM.render(<Card />, document.getElementById("root"));
ReactDOM.render(<Card editable />, document.getElementById("root"));
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
tsepen
@tsepen
Frontend developer
Можно сделать те поля которые можно редактировать в виде инпутов и задать им свойство disabled. Это свойство привязать к стейту. Когда наживаешь редактровать - стейт поменялся - все свойства disabled убираются, редактируешь, сохраняешь и снова меняешь стейт на disabled
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы