Ответы пользователя по тегу React
  • React (Next.js) как преобразовать "a" ссылки в тексте в "next/link"?

    Isolution666
    @Isolution666 Автор вопроса
    Full-Stack Developer
    Решение возникло давно, так что если это актуально, то выход только один, превращать html в json
    https://www.npmjs.com/package/html2json
    А потом этот JSON превращать в JSX

    Идеально :)
    Ответ написан
    Комментировать
  • Ошибка в путях при нахождении файла?

    Isolution666
    @Isolution666
    Full-Stack Developer
    https://www.tiny.cloud/docs/integrations/react/
    Если вы на React.js - вот решение
    <Editor tinymceScriptSrc={process.env.PUBLIC_URL + '/tinymce/tinymce.min.js'}>
    Ответ написан
  • Как отправить даные с кастомного списка в react-hook-form?

    Isolution666
    @Isolution666
    Full-Stack Developer
    Александр, здравствуйте.
    --
    Я так понял речь идёт об этой библиотеке.
    import Select from 'react-select'

    Согласно документации по React JS, данные заносятся в value, а данные по умолчанию в defaultValue. Если использовать только value, React будет ругаться на то что эти данные не под его контролем.
    Аффтарр этого плагина не стал заморачиваться и использовал те же аттрибуты что и в React.
    Получается следующее.

    <Select
      isMulti // разрешить множественный выбор
      placeholder="Choose country" // текст в поле если пусто
      closeMenuOnSelect={true} // разрешать кнопку удаления тегов внутри инпут
      value={countryOptions.find(obj => obj.value === select)} // тут выбранные страны
      defaultValue={select} // тут из стейта по умолчанию
      name="country"  //  имя селекта
      onChange={handleChange} // сюда можно вставить функцию которая будет следить за событиями
      options={countryOptions} // массив данных, откуда выбираются страны
      styles={countryStyles} // стилистика, цвета и размеры
    />


    Вот собственно и получается
    const [select, setSelect] = useState([countryOptions[0], countryOptions[7]])

    Вот текущий стейт, в котором по умолчанию countryOptions показывает первую и восьмую запись.
    Что такое реструктуризация данных, надеюсь, вы знаете.
    setSelect() поможет мутировать стейт.
    Получить и передать, то что в стейте select.

    Профит ?
    Ответ написан
    6 комментариев
  • Как в React изменить значение адресной строки?

    Isolution666
    @Isolution666
    Full-Stack Developer
    Самый примитивный и простой способ, это подключить свой API, или MongoDB, GraphQL.
    Потом асинхронно добавляешь в мутации события на изменения тех данных, которые есть в карточке.
    Всё можно делать на одной странице через состояния, меняешь их и сохраняешь. Если нужны откаты по истории действий - это редакс. Копировать ссылки, куда-то переходить, это плохой UI, пользователи привыкли получать результат сразу, по клику, а это очень сложные телодвижения. Зачем тогда React )))
    Ответ написан
    Комментировать
  • React Ant Design - как правильно разбить Layout? И как можно реализовать Routing с разным Layout?

    Isolution666
    @Isolution666
    Full-Stack Developer
    Я понял, что никто не читает документацию ))
    Но возможно вы не знали что именно искать, и не умение задавать правильные вопросы
    Приводит к неправильным ответам.
    Я понял вас благодаря подробному объяснению.
    ваша подсказка тут

    Вы ищите children `React`
    - https://ru.reactjs.org/docs/composition-vs-inherit...
    - https://medium.com/@stasonmars/%D0%BF%D0%BE%D0%B3%...

    Первая ссылка: пример из документации на примере классов
    Вторая ссылка: примеры реализации и использования children


    Для тех кто хочет юзать функции а не классы, есть вот такое решение:
    Ваше решение здесь


    import React from 'react'
    import { HeadProvider, Title  } from 'react-head'
    import { Link, useLocation } from 'react-router-dom'
    
    export function AdminLayout({children, title = 'Your title'})
    {
        
        let location = useLocation()
    
        return (
            <>
                <HeadProvider>
                    <Title>{title}</Title>
                </HeadProvider>
                <header>
                    <nav>
                        <ul>
                            <li>
                                <Link to="/">Home</Link>
                            </li>
                            <li>
                                <Link to="/about">About</Link>
                            </li>
                            <li>
                                <Link to="/dashboard">Dashboard</Link>
                            </li>
                        </ul>
                    </nav>
                </header>
                {location.pathname} {/* Здесь инфа о текущей ссылке после слэша */}
                {children} {/* Здесь будет информация из компонента который обернёте */}
                <div>Footer</div>
            </>
        )
    }


    Обёртку делаем вот так:

    import React from 'react'
    import { AdminLayout } from './components/AdminLayout'
    
    export default function About() 
    {
        const Title = 'About'
        
        return (
            <AdminLayout title={Title}>
                <h2>{Title}</h2>
                <p>there is some fucking text that is not interesting to anyone.</p>
            </AdminLayout>
        )
    }




    Профит ?
    Ответ написан
    2 комментария