Size: a a a

React — русскоговорящее сообщество

2020 October 03

DC

Defina Corporation in React — русскоговорящее сообщество
Yaroslav Sh.
я почитаю об этом, спасибо
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
Ну это как видно из документации по большей части работа с прототипами.
источник

И

Иван in React — русскоговорящее сообщество
Defina Corporation
Ещё нативно можно использовать .reduce() на js
Там есть масса возможностей, из стандартного, посчитать общее количество всех чисел из массива, получить уникальные значения по ключу и многое другое. React это воспринимает. Может кому пригодится.
Чувак, завязывай чушь пороть, пожалуйста. Какой-то редьюс, реакт что-то воспринимает.
источник

YS

Yaroslav Sh. in React — русскоговорящее сообщество
Defina Corporation
// Инициализация хранилища
function todosReducer(state, action) {
 switch (action.type) {
   case 'ADD_TODO':
     return [
       ...state,
       {
         id: action.id,
         text: action.text,
         completed: false
       }
     ]
   case 'TOGGLE_TODO':
     return state.map(todo => {
       if (todo.id === action.id) {
         return { ...todo, completed: !todo.completed }
       }
       return todo
     })
   default:
     return state
 }
}

const initialTodos = []

const store = createStore(todosReducer, initialTodos)

// Использование
store.dispatch({
 type: 'ADD_TODO',
 id: 1,
 text: 'Понять насколько redux прост'
})

store.getState()
// [{ id: 1, text: 'Понять насколько redux прост', completed: false }]

store.dispatch({
 type: 'TOGGLE_TODO',
 id: 1
})

store.getState()
// [{ id: 1, text: 'Понять насколько redux прост', completed: true }]

Вы так реализуете редакс ?
1. есть некая функция postDefaultDB который выполняет асинхроный запрос после должен выполнить другой action, который изменит состояние state
2. в контейнерной компоненте которая передаёт контекст, я получаю стейт с помощью useReducer
3. я вызываю функцию postDefaultDB
проблема: функция которую я вызываю, после асинхроного запроса не может выполнить диспатч т.к. у неё нет метода dispatch, следовательно я просто получаю там объект а не выполнение action
источник

YS

Yaroslav Sh. in React — русскоговорящее сообщество
Defina Corporation
// Инициализация хранилища
function todosReducer(state, action) {
 switch (action.type) {
   case 'ADD_TODO':
     return [
       ...state,
       {
         id: action.id,
         text: action.text,
         completed: false
       }
     ]
   case 'TOGGLE_TODO':
     return state.map(todo => {
       if (todo.id === action.id) {
         return { ...todo, completed: !todo.completed }
       }
       return todo
     })
   default:
     return state
 }
}

const initialTodos = []

const store = createStore(todosReducer, initialTodos)

// Использование
store.dispatch({
 type: 'ADD_TODO',
 id: 1,
 text: 'Понять насколько redux прост'
})

store.getState()
// [{ id: 1, text: 'Понять насколько redux прост', completed: false }]

store.dispatch({
 type: 'TOGGLE_TODO',
 id: 1
})

store.getState()
// [{ id: 1, text: 'Понять насколько redux прост', completed: true }]

Вы так реализуете редакс ?
источник

DC

Defina Corporation in React — русскоговорящее сообщество
Иван
Чувак, завязывай чушь пороть, пожалуйста. Какой-то редьюс, реакт что-то воспринимает.
ссылка выше, если не понял о чём я 😉
источник

YS

Yaroslav Sh. in React — русскоговорящее сообщество
Иван
🤔

Интересно, если опубликовать в npm useReducerWithThunk, это будет соразмерно поступкам Томаса Миджли?
хотел использовать этот метод, но похоже там нет типизации :(
источник

И

Иван in React — русскоговорящее сообщество
Defina Corporation
ссылка выше, если не понял о чём я 😉
Я понял, о чем ты. Я не понял, зачем ты это пишешь. Перестань пороть чушь, в последний раз прошу
источник

YS

Yaroslav Sh. in React — русскоговорящее сообщество
@gorbunov_i я там описал более подробно проблему, но я думаю вы уже ответили, просто на случай, если не правильно поняли
источник

|

|Atlas| in React — русскоговорящее сообщество
А использование класса без конструктора считается плохой практикой?
источник

ス。

ステパンヤノ 。... in React — русскоговорящее сообщество
ребят правильно понимаю ? . если редакс юзать с хуками (useSelector, useDispatch), то там dispatch не работет с action creators, собственно будет глобалюный метод dispatch, и еще там если parent компонент сделает рендер, то и редакс-ребенок будет делать рендер, вне зависимости от пропов, если не юзать react.memo (чего нет если юзать connect)
получаетсся для нормальной имитации работы редакса с хуками надо все редакс компоненты засунуть в react.memo , и что делать с dispatch. идея action creators очень хорошая, а тут вот вам один метод.
источник

GO

Green Orange in React — русскоговорящее сообщество
Yaroslav Sh.
1. есть некая функция postDefaultDB который выполняет асинхроный запрос после должен выполнить другой action, который изменит состояние state
2. в контейнерной компоненте которая передаёт контекст, я получаю стейт с помощью useReducer
3. я вызываю функцию postDefaultDB
проблема: функция которую я вызываю, после асинхроного запроса не может выполнить диспатч т.к. у неё нет метода dispatch, следовательно я просто получаю там объект а не выполнение action
объясни пожалуйста что такое диспатч? я не понимаю и не знаю, очень кратко)
источник

OR

Oleg Rizhkov in React — русскоговорящее сообщество
|Atlas|
А использование класса без конструктора считается плохой практикой?
Там хуки недавно вышли. Говорят, с ними лучше.
источник

|

|Atlas| in React — русскоговорящее сообщество
А PureComponent лучше чем Component?
источник

OR

Oleg Rizhkov in React — русскоговорящее сообщество
Green Orange
объясни пожалуйста что такое диспатч? я не понимаю и не знаю, очень кратко)
А ты гуглил?
источник

OR

Oleg Rizhkov in React — русскоговорящее сообщество
|Atlas|
А PureComponent лучше чем Component?
Конечно лучше, он же pure.
источник

И

Иван in React — русскоговорящее сообщество
ステパンヤノ 。
ребят правильно понимаю ? . если редакс юзать с хуками (useSelector, useDispatch), то там dispatch не работет с action creators, собственно будет глобалюный метод dispatch, и еще там если parent компонент сделает рендер, то и редакс-ребенок будет делать рендер, вне зависимости от пропов, если не юзать react.memo (чего нет если юзать connect)
получаетсся для нормальной имитации работы редакса с хуками надо все редакс компоненты засунуть в react.memo , и что делать с dispatch. идея action creators очень хорошая, а тут вот вам один метод.
Чего?) без хуков ты получаешь ссылку на диспатч в ХОКе, а с хуками — ту же ссылку на тот же диспатч в компоненте. Больше различий никаких
источник

ス。

ステパンヤノ 。... in React — русскоговорящее сообщество
Иван
Чего?) без хуков ты получаешь ссылку на диспатч в ХОКе, а с хуками — ту же ссылку на тот же диспатч в компоненте. Больше различий никаких
ну так с connect там второй аргумент можно мапить на action creator и вообще избавиться от “dispatch”.  а что на счет react.memo и ре рендеринга ?
источник

И

Иван in React — русскоговорящее сообщество
ステパンヤノ 。
ну так с connect там второй аргумент можно мапить на action creator и вообще избавиться от “dispatch”.  а что на счет react.memo и ре рендеринга ?
Не избавиться, а спрятать
источник

OR

Oleg Rizhkov in React — русскоговорящее сообщество
ステパンヤノ 。
ну так с connect там второй аргумент можно мапить на action creator и вообще избавиться от “dispatch”.  а что на счет react.memo и ре рендеринга ?
На счёт рендера Коннект от хука ничем не отличается.
источник

И

Иван in React — русскоговорящее сообщество
ステパンヤノ 。
ну так с connect там второй аргумент можно мапить на action creator и вообще избавиться от “dispatch”.  а что на счет react.memo и ре рендеринга ?
Про мемо не понял
источник