Автор проекта https://freecode.academy
Бесплатные онлайн-курсы по HTML+CSS, JavaScript, React и не только.
Местоположение
Россия, Москва и Московская обл., Москва

Достижения

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

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

Все теги (9)

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

Все ответы (32)
  • [MODx]. Evo или Revo?

    Fi1osof
    @Fi1osof
    JS fullstack developer
    Я работаю с MODx еще с версии 0.9.6.3 Знаю отлично и EVO и REVO, написал на них кучу сайтов. Ни один аргумент для меня не может стать основанием для отказа от REVO в пользу EVO.
    Ответ написан
    Комментировать
  • Как сделать несколько событий?

    Fi1osof
    @Fi1osof
    JS fullstack developer
    Нельзя так перечислить несколько событий. Смотрите доку: https://developer.mozilla.org/ru/docs/Web/API/Even...
    type
    Чувствительная к регистру строка, представляющая тип прослушиваемого события.

    То есть только один тип события.
    Но можно несложный цикл организовать. Так работает.
    ['click', 'mouseover']. map(type => document.querySelector('.o').addEventListener(type, (event)=> {
      console.log(event.type, document.querySelector('.o').textContent);
    }))
    Ответ написан
  • Как использовать 2 useQuery в одном файле?

    Fi1osof
    @Fi1osof
    JS fullstack developer
    Вероятный ответ.
    Ответ написан
    Комментировать
  • Как использовать один и тот же объект но с разными свойствами в разных компонентах?

    Fi1osof
    @Fi1osof
    JS fullstack developer
    Для полноты картины надо было еще схему вашего компонента приложить.

    Если в вашей схеме что-то типа такого:
    type Metric {
      id: Int!
      something: String
    }

    и хотите, чтобы он мог корректно возвращать entities: 50, то самое правильное это добавить это свойство в саму модель.

    type Metric {
      id: Int!
      """ Боевая переменная """
      something: String
    
      """ Для тестов """
      entities: Int
    }


    То есть у вас и та и другая переменная в схеме есть, передавать можно любое свойство, при этом поля не обязательные, так что если не будет получено, то ничего страшного.

    Это по сути единственный наиболее удобный путь для этого.

    Если у вас ситуация сложнее (в боевом режиме значительно больше полей и вы не хотите все поля перечислять), то для малозначительных моделей вы и вовсе можете задать тип JSON.
    Если вы используете Apollo-Server, вот их официальная инструкция: https://www.apollographql.com/docs/graphql-tools/s...
    Тогда у вас объект может вообще любой набор валидных свойств иметь. Но не советую с этим увлекаться, это часто приводит к хаосу.
    Ответ написан
    4 комментария
  • Как в React написать mutation и query на сервер GraphQL?

    Fi1osof
    @Fi1osof
    JS fullstack developer
    Нина, во-первых, у вас неправильно написана мутация, чисто синтаксически.
    У вас написано
    const mutation = `
    mutation createUser($firstName: String,$secondName: String, $email: String,$password:String){
      createUser(firstName: $firstName,secondName:$secondName,email:$email, password:$password){ 
       signup(   
          firstName
          secondName
          email
          password   
          )
      }
    }`;


    а должно быть
    const mutation = `
    mutation createUser(
      $firstName: String
      $secondName: String
      $email: String
      $password: String
    ) {
      signup(
        firstName: $firstName
        secondName: $secondName
        email: $email
        password: $password
      )
    }
    `;


    То есть у вас, во-первых, лишняя обертка получилась, во-вторых, вы не передали в запрос указанные параметры.

    Но даже в этом случае у вас не пройдет запрос, так как в схеме у вас некоторые параметры указаны как обязательные, а вы в своем запросе их не указали обязательными. Вот смотрите схему:
    type Mutation {
      signup(
        firstName: String!
        secondName: String!
        email: String!
        password: String!
      ): String
      // ...
    }

    У вас здесь все параметры обязательные, то есть ваш запрос должен выглядеть так:
    const mutation = `
    mutation createUser(
      $firstName: String!
      $secondName: String!
      $email: String!
      $password: String!
    ) {
      signup(
        firstName: $firstName
        secondName: $secondName
        email: $email
        password: $password
      )
    }
    `;


    В целом же, судя по тому, что у вас ошибка возникает в .mjs - файлах, она возникает не на стороне фронта, а уже на стороне АПИ-сервера, так что сам механизм у вас вроде как реализован. Но сама тема слишком объемная, чтобы в одном комменте можно было бы ее раскрыть. Попробуйте посмотреть вот это видео: https://www.youtube.com/watch?v=69e-omuXdIw
    Оно объемное, но зато раскрывает все уровни реализации GraphQL-API.
    Ответ написан
    2 комментария