Задать вопрос
Destell
@Destell
React, React Native junior developer

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

Делаю на react адресную книгу с карточками, по которым идет поиск, сортировка, могут редактироваться и т.д. Подумал, что, компоненты такого типа должны быть формами, т.е. каждая карточка - форма, но становиться таковыми должны при нажатии на "редактировать" (div => form). Как это можно адекватно реализовать? Просто сделать два компонента на редактирование и статику?
  • Вопрос задан
  • 149 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 80 000 до 120 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽