Size: a a a

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

2021 January 29

А

Артем in React — русскоговорящее сообщество
Добрый день, подскажите, пожалуйста!

Вот фрагмент кода:

const [form, setForm] = useState({salaryFrom: null});

const changeHandler = (e) => {
const { name, value } = e.target;
setForm({
...form,
[name]: value,
});
};

<InputElement
{...inputObjSalaryFromResume}
value={form.salaryFrom}
onChange={changeHandler}
/>

(В InputElement прокидываю type = "number")

Вопрос: Почему в form записывается string, есть ли возможность приведения данного значения из input в число без использования подобного кода:

const changeHandlerNumber = (e) => {
const { name, value } = e.target;
setValuesNumber({
...valuesNumber,
[name]: Number(value),
});
};
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Alex
У меня изменение параметра у объекта полученного через getState мутируется напрямую в компоненте.

тоесть:
const { object } = getState().reducer
object.parametr = 10
без диспача в редюсер меняет значение в компоненте, если проверить через console.log(this.props.object.parametr)
Вообще пока забудь про мутации, используй spread
{...object, parameter: newValue}

getState().slice тоже не используй, пиши функции селекторы

И сам getState используй только в thunk
источник

A

Alex in React — русскоговорящее сообщество
Тимофей 🛴
Вообще пока забудь про мутации, используй spread
{...object, parameter: newValue}

getState().slice тоже не используй, пиши функции селекторы

И сам getState используй только в thunk
Так дело в том, что я использую getState только в thunk. Разве через getState можно мутировать? да или нет?
источник

RS

Roman Still in React — русскоговорящее сообщество
Alex
Так дело в том, что я использую getState только в thunk. Разве через getState можно мутировать? да или нет?
В js ты можешь наворотить все что угодно, мало чего в принципе нельзя сделать, не понимаю что ты хочешь понять? блокирует ли редакс мутации напрямую? нет
источник

A

Alex in React — русскоговорящее сообщество
Roman Still
В js ты можешь наворотить все что угодно, мало чего в принципе нельзя сделать, не понимаю что ты хочешь понять? блокирует ли редакс мутации напрямую? нет
1) блокирует ли редакс мутации напрямую или нет?
2) передаваемый props в компонент мутируется или нет?
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Alex
Так дело в том, что я использую getState только в thunk. Разве через getState можно мутировать? да или нет?
Да там же просто передается объект по ссылке
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Alex
1) блокирует ли редакс мутации напрямую или нет?
2) передаваемый props в компонент мутируется или нет?
Редакс ничего не блокирует, props мутируется
источник

A

Alex in React — русскоговорящее сообщество
Тимофей 🛴
Редакс ничего не блокирует, props мутируется
Тоесть при работе с пропсами в компоненте их тоже нужно копировать.
const { object } = { ...this.props } ?
источник

RS

Roman Still in React — русскоговорящее сообщество
Alex
Тоесть при работе с пропсами в компоненте их тоже нужно копировать.
const { object } = { ...this.props } ?
Конечно
источник

OW

Oliver Wall in React — русскоговорящее сообщество
Всем привет. Сорри, что не по теме реакта, но уже голова кругом.

Как конвертировать время 22:30 из мск таймзоны в таймзону клиента.
Таймзону клиента уже получаю

Я видимо упускаю что то связанное с форматами момента или даты

Пытался сделать так
moment("02:15", 'HH:mm').tz('Europe/Moscow').tz("Asia/Hovd").format('HH:mm')


Есть подозрение, что когда я вызываю момент впервый раз, то он мне возвращает объект момента в котором уже есть таймзона и я пытаюсь её заменить вызовом tz, но это безуспешно. Он видимо считает, что таймзона и так соответствует и ничего не меняет. Где я ошибаюсь ?
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Alex
Тоесть при работе с пропсами в компоненте их тоже нужно копировать.
const { object } = { ...this.props } ?
Лучше просто не мутировать
источник

RS

Roman Still in React — русскоговорящее сообщество
Alex
Тоесть при работе с пропсами в компоненте их тоже нужно копировать.
const { object } = { ...this.props } ?
Частый кейс - нужно изменить 1 или несколько свойств, которое ты достаешь деструктуризацией и диспатчишь измененные данные, либо создаешь новый объект и докидываешь в него требуемые свойства, не используя копию
источник

A

Alex in React — русскоговорящее сообщество
Тимофей 🛴
Лучше просто не мутировать
// иммутабельно
const { object } = { ...this.props }
object = 10

//мутабельно
const { object } = this.props
const object2 = object
object2 = 10

Всё верно?
источник

OJ

Oleg Junior in React — русскоговорящее сообщество
когда вы в  резюме указали ссылку на GitHub свой, то потенциальный работодатель:
1 - просматривает ваши проекты внимательно
2 - очень бегло смотрит ( есть и ладно )
3 - вообще не смотрит
Какой кейс встречается чаще?
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
Alex
// иммутабельно
const { object } = { ...this.props }
object = 10

//мутабельно
const { object } = this.props
const object2 = object
object2 = 10

Всё верно?
нет
источник

АБ

Александр Бакиматов... in React — русскоговорящее сообщество
Alex
// иммутабельно
const { object } = { ...this.props }
object = 10

//мутабельно
const { object } = this.props
const object2 = object
object2 = 10

Всё верно?
зачем тебе делать object = 10?
источник

RS

Roman Still in React — русскоговорящее сообщество
Oleg Junior
когда вы в  резюме указали ссылку на GitHub свой, то потенциальный работодатель:
1 - просматривает ваши проекты внимательно
2 - очень бегло смотрит ( есть и ладно )
3 - вообще не смотрит
Какой кейс встречается чаще?
Уверен что нет средних данных, каждый решает как хочет
источник

RS

Roman Still in React — русскоговорящее сообщество
Alex
// иммутабельно
const { object } = { ...this.props }
object = 10

//мутабельно
const { object } = this.props
const object2 = object
object2 = 10

Всё верно?
https://learn.javascript.ru/object-copy, ознакомся, к реакту и редаксу вопрос не имеет отношения
источник

Т

Тимофей 🛴 in React — русскоговорящее сообщество
Alex
// иммутабельно
const { object } = { ...this.props }
object = 10

//мутабельно
const { object } = this.props
const object2 = object
object2 = 10

Всё верно?
Не если тебе нужен измененный объект то
const newObject = {...object, value: 10}

Но не забывай что это не глубокое копирование
источник

OJ

Oleg Junior in React — русскоговорящее сообщество
Roman Still
Уверен что нет средних данных, каждый решает как хочет
почему? средние данные всегда есть :)
источник