Size: a a a

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

2020 July 12

E

Endifai in React — русскоговорящее сообщество
Vall 🌑
Ты используешь компоненты с хуком?
Не особо понял. В главном использую useFormik, а в инпутах useField
источник

P

Pidburachynskyi Rost... in React — русскоговорящее сообщество
fikser
ппц, легче подключить бэк
Вкладка одна и та же?
источник

RU

Roman Usherenko in React — русскоговорящее сообщество
useField можно вызывать только внутри Formik
источник

V

Vall 🌑 in React — русскоговорящее сообщество
Endifai
Не особо понял. В главном использую useFormik, а в инпутах useField
useField is a custom React hook that will automatically help you hook up inputs to Formik

с доки
источник

f

fikser in React — русскоговорящее сообщество
Pidburachynskyi Rostyslav 🇺🇦
Вкладка одна и та же?
Ну я перехожу с '/' - начальной страницы, на 'post/:id' . Это же не одна вкладка
источник

P

Pidburachynskyi Rost... in React — русскоговорящее сообщество
fikser
Ну я перехожу с '/' - начальной страницы, на 'post/:id' . Это же не одна вкладка
Вкладка браузера то одна. Или нет?
источник

f

fikser in React — русскоговорящее сообщество
да
источник

P

Pidburachynskyi Rost... in React — русскоговорящее сообщество
fikser
да
Тогда роут нужно сделать примерно такой
<Route path="post/:id" component={...}/>
и в компоненте достать
useParams().id
- вот тут будет ид, а из стора уже достать по айдишнику
источник

И

Иван in React — русскоговорящее сообщество
fikser
Ну я перехожу с '/' - начальной страницы, на 'post/:id' . Это же не одна вкладка
В компоненте, который рендерится на новой странице ты можешь взять id через useParams и тут же, моментально, взять из своего стора запись с этим id. Если такой записи там нет, то стор должен получить её так, как он умеет и отдать компоненту.
источник

f

fikser in React — русскоговорящее сообщество
Pidburachynskyi Rostyslav 🇺🇦
Тогда роут нужно сделать примерно такой
<Route path="post/:id" component={...}/>
и в компоненте достать
useParams().id
- вот тут будет ид, а из стора уже достать по айдишнику
Я просто не понимаю, как достать из стора запись по id. Пройтись по стору сравнивая id?
источник

И

Иван in React — русскоговорящее сообщество
fikser
Я просто не понимаю, как достать из стора запись по id. Пройтись по стору сравнивая id?
Например, да
источник

P

Pidburachynskyi Rost... in React — русскоговорящее сообщество
fikser
Я просто не понимаю, как достать из стора запись по id. Пройтись по стору сравнивая id?
Смотря какой стор, но скорее всего "Да".
источник

И

Иван in React — русскоговорящее сообщество
fikser
Я просто не понимаю, как достать из стора запись по id. Пройтись по стору сравнивая id?
Это зависит от «что у тебя за стор» и «как там хранятся данные»

Ты спрашиваешь, как имея коллекцию сущностей и id конкретной сущности получить эту сущность? Гугли поиск по массиву (или поиск по тому, в чём хранятся твои сущности)
источник

f

fikser in React — русскоговорящее сообщество
Хорошо, спасибо за подсказку
источник

ТФ

Татьяна Фомина... in React — русскоговорящее сообщество
Почему ошибка?
import React from "react";
import clsx from "clsx";
import { ErrorMessage } from "../ErrorMessage";

export type Props = {
 name: string;
 type?: string;
 placeholder: string;
 error: string | undefined;
} & typeof defaultProps;

const defaultProps = {
 type: "text",
};

type Ref = HTMLInputElement;

export const Input = React.forwardRef<Ref, Props>((props, ref) => {
 const { name, type, placeholder, error } = props;

 return (
   <input
     name={name}
     type={type}
     className={clsx(
       "form-control form-control-lg shadow-none",
       error && "border-danger"
     )}
     placeholder={placeholder}
     ref={ref}
   />
 );
});

Input.defaultProps = defaultProps;

export const InputWithError = React.forwardRef<Ref, Props>((props, ref) => {
 const { error } = props;
 return (
   <>
     <Input {...props} ref={ref} />
     <ErrorMessage message={error} className="mt-2" />
   </>
 );
});

InputWithError.defaultProps = defaultProps;
источник

P

Pidburachynskyi Rost... in React — русскоговорящее сообщество
Татьяна Фомина
Почему ошибка?
import React from "react";
import clsx from "clsx";
import { ErrorMessage } from "../ErrorMessage";

export type Props = {
 name: string;
 type?: string;
 placeholder: string;
 error: string | undefined;
} & typeof defaultProps;

const defaultProps = {
 type: "text",
};

type Ref = HTMLInputElement;

export const Input = React.forwardRef<Ref, Props>((props, ref) => {
 const { name, type, placeholder, error } = props;

 return (
   <input
     name={name}
     type={type}
     className={clsx(
       "form-control form-control-lg shadow-none",
       error && "border-danger"
     )}
     placeholder={placeholder}
     ref={ref}
   />
 );
});

Input.defaultProps = defaultProps;

export const InputWithError = React.forwardRef<Ref, Props>((props, ref) => {
 const { error } = props;
 return (
   <>
     <Input {...props} ref={ref} />
     <ErrorMessage message={error} className="mt-2" />
   </>
 );
});

InputWithError.defaultProps = defaultProps;
источник

ТФ

Татьяна Фомина... in React — русскоговорящее сообщество
вопрос не в этом, а в том, почему убрать React.FC здесь недостаточно, чтобы починить проблему с типизацией defaultProps
источник

P

Pidburachynskyi Rost... in React — русскоговорящее сообщество
Татьяна Фомина
вопрос не в этом, а в том, почему убрать React.FC здесь недостаточно, чтобы починить проблему с типизацией defaultProps
Это же ТС, он ошибку и выдает что не передано тип.
источник

ТФ

Татьяна Фомина... in React — русскоговорящее сообщество
Pidburachynskyi Rostyslav 🇺🇦
Это же ТС, он ошибку и выдает что не передано тип.
type есть в defaultProps
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Андрей Звёздочка
Да. Сделал систему событий и 1 реакт компонент, в котором всё обновлялось. Не эффективно - да. Но хотя бы задача решена и бизнес доволен.
Мне кажется просто нужно попробовать сделать обратный итероп стейта реакта в стм
источник