Александр
А гигантский
В моем случае это не было возможно. Зависит от ситуации вообщем, иногда способ со stringify не такой уж и смешной
Looch
и ключ будет все равно к строке приведен
Sm•ok
Я ещё не сталкивался
Александр
А что за кейс был?
Ну в общем, был рест апи с субресурсами, при удалении субресурса возвращался JSON с основным ресурсом, и в данном случае надо просто перерисовать страницу, в случае же удаления основного ресурса возвращался пустой объект и надо было редирект делать на страницу со списком
Александр
Почему такой апи был лучше не спрашивайте, вот был и все тут, не от меня зависело (ну почти)
El
Привет. Пипл, как в create-react-app v1 запустить не все тесты разом, а один частный файл? У меня в client/src есть sample.test.js и sample2.test.js. Запускаю команду npm test sample2.test.js и Jеst запускает тест sample.test.js и наоборот, по команде npm test sample.test.js запускается sample2.test.js.
El
Имелось ввиду при запуске из консоли.
🦜
Имелось ввиду при запуске из консоли.
открой доку либы тестов да посмотри
El
Ссылку на место в доках в студию.
Александр
Ссылку на место в доках в студию.
И ключи от квартиры где деньги лежат
Bogdan
как в initialValues засунуть переменную? изза того что изначально там пусто, она всегда пустая
Bogdan
он дальше передается в формик
Victor
И какую переменную вы туда хотите
Bogdan
текст, который пришел
Bogdan
изначально жмешь редактировать, окно всплвает, там инпут, туда нужно вставить текст
Bogdan
изначально пусто, и окно всплывает уже с пустым инпутом, а уже после фильтранется когда массив придет текст
Bogdan
вот изначально пусто, екшен, получил текст, но модалка то уже подянлась
enshck
Ребят всем привет, у меня такой вопрос , есть проблема достаю с пропсов переменую, которая из редюсера(редакс) но она сначала undefined, как сделать так чтоб компонент подождал когда значение прийдет, а не ругался на undefined, ну или что-то типа того
El
Значение в переменную попадает в ComponentDidMount()?
El
Проверить значение переменной, если undefined, не отображать элементы, где она используется. myVar && <div>{myVar}</div>.
enshck
При componentdid mount запрос отправляется
enshck
Сейчас кину
Daniil
Зачем кидать, тебе выше сказали как
enshck
Сори за качество
enshck
enshck
Ок, спасибо
El
Ок, спасибо
Насколько смог разглядеть и разбираться в таком качестве неохота. Вот типичный пример. import React, { Component } from 'react'; import { connect } from 'react-redux'; import PropTypes from 'prop-types'; import PostForm from './PostForm'; import PostFeed from './PostFeed'; import Spinner from '../common/Spinner'; import { getPosts } from '../../actions/postActions'; class Posts extends Component { componentDidMount() { this.props.getPosts(); } render() { const { posts, loading } = this.props.post; let postContent; if (posts === null || loading) { postContent = <Spinner />; } else { postContent = <PostFeed posts={posts} />; } return ( <div className="feed"> <div className="container"> <div className="row"> <div className="col-md-12"> <PostForm /> {postContent} </div> </div> </div> </div> ) } } Posts.propTypes = { post: PropTypes.object.isRequired, getPosts: PropTypes.func.isRequired }; const mapStateToProps = (state) => ({ post: state.post }); export default connect(mapStateToProps, { getPosts })(Posts);
El
posts === null - вот это проверка. В вашем примере undefined вместо null. Лучше писать просто !posts.
El
Блоки кода вставляются между парой ```.
enshck
Ну как вариант, если данные еще не дошли - спиннер, я просто думал в саге что-то можно сделать чтоб такого не было, так-то да, спасибо, я думал кстати за спинер
El
css-spinners.com.
El
Ну как вариант, если данные еще не дошли - спиннер, я просто думал в саге что-то можно сделать чтоб такого не было, так-то да, спасибо, я думал кстати за спинер
Переменная декларирована в компоненте, значение к ней приходит откуда-то ещё. У неё поначалу будет undefined, как иначе.
enshck
Ну это из-за асинхроности
enshck
У меня ж отправка на сервер при componentdidmount
enshck
Пока ответ прийдет, будет ундефайн
El
Сага приходит в процесс уже после компонента, поэтому к начальному значению переменной не имеет отношения.
enshck
Ну у меня там в генераторе, в саге запрос и производится
enshck
Еще раз спасибо
El
Saga или thunk, где переменная объявлена (декларирована), там ей по дефолту будет присвоено undefined. Saga, thunk не относятся к этому вообще никак. Потому что к дефолтному значению переменной не имеют касательства, они в разных файлах. Рад пособить.
Andrii
Всем привет. Кто знает плагин с возможностью выбора страны и города. И чтобы можно было стилизовать. ???
Andrii
react-select
нужно будет ручками страны и города запихивать в массив. Спасибо
Timofey
Контейнер был размонтирован. Какой порядок будет у componentWillUnmoumnt? Container -> ComponentWillUnmont ChildrenElements -> Component WilUnmount верно?
Bob
написал статейку про redux best practices, кому интересно, вот ссылка: https://medium.com/@iamawebgeek/7-tips-for-redux-that-will-make-your-life-easier-4812b253cf25?source=friends_link&sk=b37530d0fa3b76dd8c969814fe2f809f
Alexander
Всем привет. Кто-нибудь знает, запись вчерашней концы будет где-нибудь выложена?
Vitaliy
Доброе утро подскажите пожалуйста у меня с апи приходит очень большой массив порядка 5тыс. объектов в массиве, подскажите как правильно его обрабатывать чтобы отобразить на странице, это галерея фото.
Александр
С помощью lodash бить на части и показывать по мере необходимости
Зачем лишние копирования, offset и limit завести и показывать те у которых индекс в пределах offset и offset + limit. Меняя offset меняете страницу как бы, меняя limit меняете количество на странице. Заводите три стейта, photos: Photo[], offset: number и limit: number. Куда проще то .
Александр
Lodash не нужен
Не нужон конечно, но часто так нужны всякие omitBy, pick, руками написать предлагаете и положить у себя рядышком?
Александр
Контейнер был размонтирован. Какой порядок будет у componentWillUnmoumnt? Container -> ComponentWillUnmont ChildrenElements -> Component WilUnmount верно?
При монтировании у вас вызываются componentDidMount с низу вверх, от дочерних до родительского, при размонтировании все идёт в обратном порядке начиная с родителей и заканчивая детьми. В прочем это легко устанавливается простой лабораторной работой за пять минут.
Александр
написал статейку про redux best practices, кому интересно, вот ссылка: https://medium.com/@iamawebgeek/7-tips-for-redux-that-will-make-your-life-easier-4812b253cf25?source=friends_link&sk=b37530d0fa3b76dd8c969814fe2f809f
Совет 4) Use one action only inside of one reducer показался странным, не понял честно говоря какие доводы приводите за такое.
Nikolai
Совет 4) Use one action only inside of one reducer показался странным, не понял честно говоря какие доводы приводите за такое.
Логично же. Экшен обрабатывается только в одном редьюсере и влияет на свой кусок стейта. Соблюдается принцип единственной ответственности и легче дебажить/рефакторить
Vitaliy
єто тз о либах сторонних ничего не сказано в тз, надо сделать главный компонент и снего прокидывать все вниз, c lodash я не работал, и вот не знаю стоит сейчас с єтим заморачиватся или нет
Lesha
Народ вопрос у меня в тестовом надо юзать редакс-сагу(которую я никогда не юзал и знаю лишь,что она нужна для асинхронных операций) в каких моментах ее тут надо будет использовать?
El
Saga это заменитель thunk? Они используются одинаково?
Егор
Saga это заменитель thunk? Они используются одинаково?
Альтернатива, подходы принципиально разные. Thunk проще, Сага, по моему скромному мнению, переоценнена и полезна в сложных проектах с очень сложной логикой. Учитывая, что она к тому же не типизируется номально типизируется - yield всегда any возвращает в TS
Егор
Народ вопрос у меня в тестовом надо юзать редакс-сагу(которую я никогда не юзал и знаю лишь,что она нужна для асинхронных операций) в каких моментах ее тут надо будет использовать?
Собственно для любых асинхронных операций (90% всех слуаев) и side-эффектов, которые невозможно реализовать в рамках редьюсера
Nikolai
Saga это заменитель thunk? Они используются одинаково?
Thunk это мидлваря на 14 строк, которая ваш диспатч в доп.обертку заворачивает, не более. Он по сравнению с сагой ничего не умеет делать с асинхронными действиями, кроме как вызывать их и диспатчить по результату
Егор
А как бы ты yield типизировал?
Никак. Невозможно. А требуется, что бы call возвращал корректный тип при вызове запроса api - использовать async в сагах у меня так и не получилось.
Егор
Приходится каждый раз ручками тип прописывать, что по сравнению с автоопределением типа на основе вызываемой функции приводит к потенциальным ошибкам.
Егор
Ну а току
Егор
yield call(callApi)`все равно вернет `any
Bob
Совет 4) Use one action only inside of one reducer показался странным, не понял честно говоря какие доводы приводите за такое.
Ну во первых проще читается и дебажится, а во вторых если пэйлод одного экшена нужно будет поменять, другой экшен при этом не поломается
El
Как сейчас в России с употреблением хуков в повседневной работе? Lifecycles хватает?