miliko mikoyan, если вы не хотите реагировать на последующие изменения props, то это вообще не надо использовать.
Если надо реагировать на последующие изменения props и хотите перерисовать компонент всего один раз по изменению, то тут лучше использовать getDerivedStateFromProps. Тогда состояние будет обновлено по приходу новых props. Но как уже писал выше надо хранить предыдущее значение, так как метод статический:
const computeDerivedStateFromProps = ({ x }) => ({
y: x,
prevX: x,
});
class Y extends React.Component {
static getDerivedStateFromProps(props, state) {
if (props.x !== state.prevX) {
return computeDerivedStateFromProps(props);
}
return null;
}
state = computeDerivedStateFromProps(this.props);
render() { ... }
}
Выглядит, правда, такое решение не очень изящно. Но главное, что оно работает.
miliko mikoyan, там написали, что антипатерном является простое копирование props в state, если подразумевается только использование без изменения. Если props задает начальное состояние, которое будет в последствии изменено, то это совершенно другой случай.
miliko mikoyan, с чего вы взяли, что это анти-паттерн? Если вы точно знаете, что массив есть, то делать так можно. В любом случае правильно обработанное отсутствие значения это не ошибка, а вот изменение состояния во время отрисовки вполне себе подспорье для стрельбы в ногу.
Главное, как я уже писал, в случае с useMemo закешированное значение в любой момент может быть потеряно и вы вернетесь к значению полученному из props.
NikSIk31, человек, который будучи гражданином Украины собрался вести незаконную предпринимательскую деятельность в России и спрашивает правильно ли он поступает?
Смотрите, что какая ответственность предусмотрена в вашей стране. Какие есть уловки и риски. Тут даже конкуренты могут воспользоваться вашей юридической неподкованностью и потеряете больше чем заработали, это не считая потраченного времени. А судя по картинкам в вопросах времени вы потратили достаточно. Тут лучше не поскупиться проконсультироваться с хорошим юристом, компетентным в этой области.
boss_lexa, угу это автор налоговой будет потом рассказывать, что сайт с каталогом товаров и привязанной платежной системой, не нацелен на систематическое получение прибыли.
36 000 для предпринимателя не деньги. Читал, что подобные сервисы только за 1 диплом в пару раз больше берут.
а еще кстатие говоря продажу готовых работ можно наверное провернуть по лицензионному договору,
как авторское вознаграждение, с которого обычно платят НДФЛ
Вот, в налоговых уловках я не силен. Может и можно. Плачу 6% УСН и живу спокойно.
Посмотрел подобные сайты, нигде нет реквизитов ип или компаний. Они обычно как-то все это мутно проворачивают, не видел, чтобы был где-то был каталог с ценами, корзиной и оплатой.
boss_lexa, а пруфы вашим словам будут? За нелегальную предпринимательскую деятельность законодательством России предусмотрены налоговая, административная и уголовная ответственность.
1. Многие программисты давно и небезосновательно окрестили вайтишные курсы "налогом на тупость".
2. Работодатели обычно выходцев курсов без опыта сразу сливают. Среднестатический самоучка обычно больше увлечен сферой, имеет более глубокие знания предметной области, а главное имеет хорошие навыки самообучения, а так же умеет эффективно самостоятельно решать типовые задачи и внезапно возникшие проблемы.
3. Платите наставнику от 100 000 в месяц или от 3000 в час и будет у вас хороший опытный наставник.
angelzzz, да с handle ошибся. Невнимательность, извините.
Почему хамоватый? Вы спрашиваете про websocket соединение и конкретную библиотеку, но в примере кода работаете с http/https запросом и упомянутую библиотеку не используете. При этом пытаетесь несколько раз использовать res.send, который при первом вызове пошлет ответ и закроет соединение.
Что еще тут ответить? Написать за вас код серверной и клиентской части?
В интернете и так достаточно хороших примеров.
Mdmitr, объясните как по-вашему один ключ состояния this.staet.checked должен иметь разные значения?
И без перебора ваш код не будет работать, у вас в хандлере ошибка.
Почитайте документацию по ссылке.
Если надо реагировать на последующие изменения props и хотите перерисовать компонент всего один раз по изменению, то тут лучше использовать getDerivedStateFromProps. Тогда состояние будет обновлено по приходу новых props. Но как уже писал выше надо хранить предыдущее значение, так как метод статический:
Выглядит, правда, такое решение не очень изящно. Но главное, что оно работает.