Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

Unknown

junior
  • 1
    вклад
  • 149
    вопросов
  • 6
    ответов
  • 50%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Передать функцию callback через конструктор Vue?

    Kozack
    Alex @Kozack Куратор тега JavaScript
    Thinking about a11y
    Ну, можно сделать через плагин:

    Условный пример:
    function callback() {
      console.log('This is callback');
    }
    
    
    Vue.use({
        install(Vue) {
            Vue.prototype.$callback = callback
        }
    })


    Тогда в компонентах можно вызывать вашу функцию:
    {
        someMethod() {
            this.$callback(/* ... */)
        }
    }
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • TS2345 как обойти ошибку?

    lnked @lnked
    Попробуйте
    const [viewport, setViewport] = useState<State>(initialState)
    Ответ написан более двух лет назад
    1 комментарий
    1 комментарий
  • Как читать только те куки что мне нужны?

    rockon404
    Антон Спирин @rockon404
    Frontend Developer
    1. Ставим любой удобный пакет по работе с cookie в браузере, например, js-cookie. Ну или пишем свой.
    2. const myCookieValue = Cookie.get(MY_COOKIE_KEY);
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как отрендерить компонент переданный в Props?

    0xD34F
    0xD34F @0xD34F
    // достаёте компонент из пропсов, обратите внимание, что
    // имя переменной должно начинаться с большой буквы
    const Component = this.props.component;
    
    // ну и рендерите его
    <Component />
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как сделать проверку для букв из любой кодировки?

    Casufi
    Владимир @Casufi
    Например ^[A-Za-zА-Яа-я]+$/g Если более широко, погуглить про символьные классы, юникод
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как перенести функционал добавления статей на фронтенд сайта?

    azerphoenix
    Орхан Гасанлы @azerphoenix
    Java Software Engineer
    Здравствуйте!
    1) использовать плагин WP Recall. В нем уже есть модуль для фронт-энд публикации
    2) использовать https://ru.wordpress.org/plugins/accesspress-anony...
    3) ТОП 4 плагинов для фронта - https://accesspressthemes.com/blog/top-5-frontend-...
    4) ACF плагин.
    https://www.advancedcustomfields.com/resources/cre...
    https://www.advancedcustomfields.com/resources/acf...
    Ответ написан более трёх лет назад
    5 комментариев
    5 комментариев
  • Как перенести функционал добавления статей на фронтенд сайта?

    uRoot @uroot
    Есть плагины для этого, например:
    Accesspress Anonymous Post
    TT Guest Post Submit
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как перенести функционал добавления статей на фронтенд сайта?

    maksym1991
    Maksym Davydchuk @maksym1991
    WordPress adept
    Привет. В этом видео показано как это сделать
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как реализовать функцию invert для бинарного дерева?

    0xD34F
    0xD34F @0xD34F Куратор тега JavaScript
    Рекурсия же:

    const invertTree = ({ value, left, right }) => {
      const node = { value };
      if (left) {
        node.right = invertTree(left);
      }
      if (right) {
        node.left = invertTree(right);
      }
      return node;
    };
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Где React Fiber?

    rockon404
    Антон Спирин @rockon404 Куратор тега React
    Frontend Developer
    Где React Fiber?

    Тут

    Я не могу понять работает ли React Fiber на версии 16.4 уже сейчас по дефолту (видимо нет раз я могу использовать старые синтаксические конструкции)

    Архитектура Fiber используется c версии 16.0

    или все же нужно вместо react-dom импортить react-fiber-dom (ну или как-то по другому)

    Нет.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Почему я не могу сделать setState в handleSubmit()?

    rockon404
    Антон Спирин @rockon404 Куратор тега React
    Frontend Developer
    при сабмите this.request(e.target) отрабатывает как нужно, но setState не срабатывает совсем.

    Должен срабатывать. У вас точно handleSubmit привязан к контексту компонента?
    Если нет, то это можно сделать так:
    handleSubmit = e => {
    
    };

    Вызов setState можно сократить до:
    this.setState({
          currentState: {
            ...this.state.currentState,
            submited: true,
          },
        });


    PS как я могу изменить состояние после возвращения request. В функции .then контекст this я получить не могу

    Можете:
    this.request(e.target).then(() => {
        this.setState({
          currentState: {
            ...this.state.currentState,
            submited: true
          }
        });
    });

    Или можно использовать асинхронную функцию:
    handleSubmit = async e => {
        e.preventDefault();
        await this.request(e.target);
    
        this.setState({
          currentState: {
            ...this.state.currentState,
            submited: true
          }
        });
      };
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как обойти особенность работы состояний в React для валидации инпута?

    Анатолий Жаров @SeaBreeze876
    Front-end разработчик
    Можно заметить что onChange не возвращает текущий введенный символ в событие.

    в событии есть последний введенный символ, его нет в стейте сразу после вызова setState
    handleChange(event) {
        this.setState({value: event.target.value});
        console.log(this.state.value);
      }

    метод setState асинхронный, и принимает вторым параметром колбэк
    если делать вот так, то все будет норм
    handleChange(event) {
        this.setState({value: event.target.value}, () => console.log(this.state.value));
      }

    не вижу никаких проблем с валидацией
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как проверить дублирование добавления на клиенте в React?

    maxfarseer
    Максим @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Мне кажется в задаче немного неверный порядок. Обычное решение следующее:

    Кнопке submit делаем атрибут disabled, который проставляется в результате работы функции validate. Внутри validate проверяем - валидная форма или нет. Если валидная - disabled=false и юзер может отправить форму, итого имеем "досерверную валидацию". Затем, если пришла с сервера ошибка - показываем ее и снова ставим disabled=true, до тех пор, пока не будет изменений.

    valiadte = () => {
      if (форма не валидная) {
        return false
      }
      return true
    }
    render() {
    <form> ...
    <button disabled={this.validate()}> отправить </button>
    }
    ...


    Главное в том, что вы вызываете this.validate() внутри метода render, а это значит, что на каждое изменение state (ваших данных формы), будет перерендер и следовательно вызов validate. То есть, всегда актуальное состояние.

    > Я хочу провалидировать форму после нажатия submit
    Зачем? лучше сразу запрещать отправлять форму, если она не валидная. Так и для UI понятнее, и вам код организовать проще будет.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как проверить дублирование добавления на клиенте в React?

    yanis_kondakov
    yanis_kondakov @yanis_kondakov
    state: { hadSubmitted: false, };
    
    componentDidUpdate(prevProps, prevState) {
        const { hadSubmitted } = this.state;
    
        if (hadSubmitted) {
            //...validate
        }
    }
    
    handleSubmit(e) {
        ...
        this.setState({
           hadSubmitted:  true,
        });
    }
    
    validate(state, form) {
        ...
        this.setState({ hadSubmitted: false, })
    }
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как передать данные снизу вверх с помощью Context API React?

    DarthJS
    DarthJS @DarthJS
    Centext Api немного для других целей. Просто закиньте метод внутрь:

    и уже в родительском компоненте, где вы его обьявили выловите value:
    handleChange = (e) => e.target.value;
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как передать данные снизу вверх с помощью Context API React?

    rockon404
    Антон Спирин @rockon404 Куратор тега React
    Frontend Developer
    Context API используют для передачи контекста, а не для управления состоянием. Почитайте о Redux.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как закончить регулярное выражение?

    Sanasol
    Александр Аксентьев @Sanasol Куратор тега JavaScript
    нельзя просто так взять и загуглить ошибку
    $arr = explode('-', $string);
    $arr[1] // => то что надо

    не надо пилить регулярки там где они не нужны.
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Как закончить регулярное выражение?

    GTRxShock
    GTRxShock @GTRxShock
    Full-stack developer (Symfony, Angular)
    \d{2}-0?(\d{1,2})-\d{4} ?
    https://regexr.com/3p6v5
    Ответ написан более трёх лет назад
    6 комментариев
    6 комментариев
  • Какая логика работы DOM во время добавления и удаления обработчиков в моем случае?

    0xD34F
    0xD34F @0xD34F Куратор тега JavaScript
    Вместо назначения индивидуальных обработчиков сделайте один делегированный:

    const container = document.querySelector('.container');
    
    document.querySelector('.plus').addEventListener('click', function() {
      container.insertAdjacentHTML('beforeend', '<div class="user-button">❌</div>');
    });
    
    container.addEventListener('click', function(e) {
      if (e.target.classList.contains('user-button')) {
        console.log('hello, world!!');
      }
    });
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Адекватны для требования в вакансиях?

    ой всё @AnneSmith
    самая ленивая
    начинающие и бойкие легко пойдут для получения опыта, чтобы через полгода-год искать позицию разработчика
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • 5
  • Следующие →
Самые активные сегодня
  • mayton2019
    • 7 ответов
    • 0 вопросов
  • Drno
    • 6 ответов
    • 0 вопросов
  • black1277
    black1277
    • 6 ответов
    • 0 вопросов
  • ProgrammerForever
    Григорий Боев
    • 5 ответов
    • 0 вопросов
  • Vindicar
    Vindicar
    • 4 ответа
    • 0 вопросов
  • opium
    Пума Тайланд
    • 4 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации