Задать вопрос
Ну вот, опять нечаянно, сломал Вселенную...
Контакты
Местоположение
Россия, Москва и Московская обл., Лобня

Достижения

Все достижения (12)

Наибольший вклад в теги

Все теги (67)

Лучшие ответы пользователя

Все ответы (159)
  • Почему так работает?

    black1277
    @black1277
    Вольный стрелок
    Потому что useAction() возвращает не ту же самую функцию, а функцию забинденную на dispatch и выглядит это примерно вот так:
    function bindActionCreator(actionCreator, dispatch) {
      return function () {
        return dispatch(actionCreator.apply(this, arguments));
      };
    }

    то есть по ключу fetchTodos лежит уже вызванная функция bindActionCreator(fetchTodos, dispatch) , и вызывая fetchTodos вы по сути вызываете вот этот участок:
    function () {
        return dispatch(actionCreator.apply(this, arguments));
      };

    надеюсь, понятно объяснил. Но лучше вывести самому в консоль лог и изучить.
    Ответ написан
    1 комментарий
  • Как правильно передать props?

    black1277
    @black1277
    Вольный стрелок
    Props это объект - у него нет функции map. Вытащи из пропса нужный массив и к нему примени map.
    Ответ написан
    5 комментариев
  • Оцените пожалуйста мой первый проект "Crud To-do list" на React.js + Node.js + Postgresql?

    black1277
    @black1277
    Вольный стрелок
    По вопросам:
    1 Особой разницы нет, только для вашей IDE - она правильнее подсказки будет делать в файле jsx
    2 Первое предупреждение о том, что используете key={todo.id} немного не там - нужно в родительский div это переместить
    <div className="todos" вот сюда>
           <div key={todo.id} className="item-todo" >

    второе предупреждение связано с тем, что хук в своем массиве зависимостей не видит вызываемую в нем функцию
    useEffect(() => {
            getTodos()
        }, [вот тут])

    пока можете поставить такую строку, чтобы не видеть ошибку
    useEffect(() => {
            getTodos()
    // eslint-disable-next-line
        }, [])

    Если хотите разобраться с правильным использованием useEffect
    Ответ написан
    1 комментарий
  • Как отправить все файлы из папки на сайт с сервера?

    black1277
    @black1277
    Вольный стрелок
    Скорее всего вам нужен метод для раздачи статичных файлов:
    app.use(express.static(path.join(__dirname, 'public')))

    все файлы, лежащие в папке public (можно задать свою) могут быть получены клиентом. Нужно только сформировать список существующих файлов и выдавать их url на фронт.
    Ответ написан
    1 комментарий
  • Ошибка в кодировке текста?

    black1277
    @black1277
    Вольный стрелок
    Библиотека request давно устарела. Вместо неё лучше использовать axios.
    Вы пытаетесь прочитать удаленный файл в кодировке ANSI и перекодировать в UTF-8.
    Для этого вам понадобится библиотека iconv-lite . Установите её:
    npm i iconv-lite
    Тогда сможете использовать такой код:
    const request = require('request'),
      fs = require('fs'),
      iconv = require('iconv-lite');
    
    request({
      url: 'https://litportal.ru/trial/txt/6376244.txt',
      encoding: null,
      body: 'Buffer'
    }).pipe(iconv.decodeStream('win1251'))
      .pipe(iconv.encodeStream('utf8'))
      .pipe(fs.createWriteStream('file-in-utf8.txt'));
    Ответ написан
    Комментировать