• Как использовать useStore, useSelector, useDispatch hook?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    1. useDispatch - получение функции store.dispatch в компоненте. Раньше для вызова action функциональный компонент приходилось оборачивать в вызов connect:
    const Foo = ({ dispatch }) => {
      const handler = useCallback(() => {
        dispatch(action());
      }, []);
    
      return (
        <Bar onClick={handler} />
      );
    };
    
    export default connect()(Foo);


    Сейчас:
    const Foo = () => {
      const dispatch = useDispatch();
    
      const handler = useCallback(() => {
        dispatch(action());
      }, []);
    
      return (
        <Bar onClick={handler} />
      );
    };
    
    export default Foo;


    2. useSelector - маппинг значения из store.
    Раньше:
    const Foo = ({ value }) => {
      return (
        <Bar value={value} />
      );
    };
    
    const mapStateToProps = state => ({
      value: state.value,
    });
    
    export default connect(mapStateToProps)(Foo);


    const Foo = () => {
      const value = useSelector(state => state.value);
    
      return (
        <Bar value={value} />
      );
    };
    
    export default Foo;


    3. useStore - получение store целиком:
    const valueSelector = state => state.value;
    
    const Foo = () => {
      const { dispatch, getState, subscribe } = useStore();
      const value = valueSelector(getState());
      
      useEffect(() => subscribe(console.log), []);
    
      const handler = useCallback(() => {
        dispatch(action());
      }, []);
    
      return (
        <Bar onClick={handler} value={value} />
      );
    };
    
    export default Foo;

    Вряд ли useStore вам, действительно, понадобится на практике.
    Ответ написан
    Комментировать
  • Почему не работает react-router?

    mmmaaak
    @mmmaaak
    На этапе конфигурации роутера, indexOfArray скорее всего равно undefined, если нужны параметры в урл роута гугли react router url parameters
    Ответ написан
    Комментировать
  • Мотивация программирования — деньги. Это нормально?

    Gibbzy
    @Gibbzy
    А почему деньги это плохая мотивация?
    Работать чтобы деньги! Если вам не нужны деньги зачем вам тогда работать? Программируйте в свое удовольствие тогда свои проекты.

    Интересность работы, знаете дело такое. Человек такой человек, что ему все интересное со временем надоедает и постоянно хочется чего то нового. Будете работу постоянно менять, даже если денег достаточно?

    По моему деньги это отличная мотивация и это нормально. Более того я считаю что никакой личной привязанности к проекту быть не должно, иначе вы теряете в мобильности и можете в итоге потерять в деньгах.
    Ответ написан
    Комментировать
  • Как вернуть мотивацию к учебе?

    1div
    @1div
    senior php developer
    У меня бывает сяду что-то делать, и отвлекаюсь на всякие ссылки в закладках. Сам толком не осозновая раз и ютуб открыл, вконтакте, хрень какую-то.
    Решил для себя просто закрытием хостов в hosts под рутом )) Сам себя конечно обманываю, но для меня это работает. Открываю на пару часов в неделю и хватит, специально под это время выделяю. Жамкаешь так на левую ссылку, а там раз и ошибка )) думаешь.. а, ну да.. и как то лениво опять под рутом лезть в hosts.. и уже работаешь над тем, что остается
    А в изучении, обучении.. для себя вывел, что если вроде как и дедлайна никакого нет, то и не торопишься, что-то можешь отложить, забить.. а вот если бы как на учебе, в вузе.. когда сессия и приперло, то многое успеваешь сделать..
    Поэтому устраиваю для себя такие сессии зацикленные, как в вузе.. даю план себе, на месяц, максимум 2.. прикидываю что я могу за это время изучить.. ставлю дедлайн.. и пытаюсь вписаться в сессию.. а после сессии пару недель никакой учебы, и вообще в свободное время никакого компа
    Ответ написан
    Комментировать
  • Как в figma объединить сразу несколько изображений?

    NewWingsAsya
    @NewWingsAsya
    Веб-дизайн, интерфейсы и бренд-айдентика.
    Мне кажется в вашем случае подойдет такой вариант: сохранить себе в черновики дизайн в Figma (Duplicate to your drafts), который вам пошарил дизайнер и там уже объединить нужные объекты в группу (Ctrl+G), которую потом экспортировать в нужный формат.

    В avocode есть функция объединения изображений для экспорта (Merge layers), у Figma в режиме Inspect (Режим, когда пошарили дизайн для просмотра) подобного функционала пока нет.

    Как добавить себе в черновики копию макета в Figma:
    1. Наведите на название проекта в Figma и нажмите на стрелочку вниз
    2. Выберите Duplicate to your drafts
    3. Снизу появится сообщение что копия была создана, и предложение открыть ее, нажимаете Open
    4. Теперь в вашей копии документа вы можете объединять графику для экспорта
    Ответ написан
    Комментировать
  • Как в figma объединить сразу несколько изображений?

    @Lord_Dantes
    В изображениях обычно есть группы, если вы владелец можете объеденить их в группу и вырезать группу или просто выбрать группу и экспортировать в нужном формате.
    Ответ написан
    Комментировать
  • Почему не работает append?

    MagnusDidNotBetray
    @MagnusDidNotBetray
    Самый елеустремленный человек
    formName.insertAdjacentElement('afterend', resultInput);
    Ответ написан
    Комментировать
  • Почему вылазит ошибка Cannot read property 'append'?

    Robur
    @Robur
    Знаю больше чем это необходимо
    потому что конструктор у вас ждет кучу параметров - src, alt, title, descr, price, parentSelector
    а вы ничего ему не даете - new Menu()

    соответственно внутри все undefined, в том числе и parentSelector, поэтому this.ParentSelector null.

    и при задании вопроса желательно текст ошибки полностью показывать, а не кусок
    Ответ написан
    1 комментарий
  • Как исправить ошибку в git Bash?

    @SelebrenOne
    Дам ссылку на ресурс где описана твоя проблема и способ её решения, там же можешь почерпнуть немного информации для общего развития.
    Ссыль
    Ответ написан
    Комментировать
  • Как выводить в консоль текущее время и дату каждую секунду?

    Нужно вызывать new Date() каждый раз, а не только в начале.
    Ответ написан
    1 комментарий
  • Как решить проблему с переходом?

    Включите обработку PHP на веб-сервере
    Ответ написан
    Комментировать
  • Как исправить вечную рекурсию?

    Вечная рекурсия происходит из-за того что вы никогда не меняете значение $sum
    Ответ написан
    5 комментариев
  • После ввода неправильного названия в бота погоды на pythone, выскакивает ошибка,что с этим делать?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Использовать конструкцию try - except.
    Рабочий код:
    import telebot
    import pyowm
    
    owm = pyowm.OWM('key', language = "ru")
    bot = telebot.TeleBot('token')
    
    @bot.message_handler(content_types=['text'])
    def send_echo(message):
    	try:
    		observation = owm.weather_at_place( message.text )
    		w = observation.get_weather()
    		temp = w.get_temperature('celsius')["temp"]
    		hum = w.get_humidity()
    		time = w.get_reference_time(timeformat='iso')
    		wind = w.get_wind()["speed"]
    
    		answer ="В городе " + message.text + " сейчас " + w.get_detailed_status() + "\n"
    		answer += "Температура сейчас в районе " + str(temp) + "\n\n" + "\nСкорость ветра: " + str(wind) + "м/с" + "\n" + "\nВлажность: " + str(hum) + "%" + "\n" + "\nВремя: " + str(time) + "\n"
    
    		if temp < 11:
    			answer += "Сейчас очень холодно."
    		elif temp < 20:
    			answer += "Сейчас прохладно, лучше одеться потеплее."
    		else:
    			answer += "Температура в норме!"
    
    		bot.send_message(message.chat.id, answer)
    	except:
    		bot.send_message(message.chat.id,'Ошибка! Город не найден.')
    bot.polling( none_stop = True)
    input()

    5e494983ac97a904403016.png
    Ответ написан