// users.js
async function getUser(id) {
await helper.load({
type: 'GET_USER',
func: () => api.getUser(id),
rootProp: 'users'
});
}
async function editUser(id, value) {
await helper.load({
type: 'EDIT_USER',
func: () => api.editUser(id, value),
rootProp: 'users'
});
}
// helpers.js
async function load({ type, func, rootProp, loadingProp = 'isFetching', resultProp='data', errorProp='error' }) {
if (getState()[rootProp][loadingProp]) return;
setState({
type: type + '_STARTED',
[rootProp]: { [loadingProp]: true }
});
let data;
try {
data = await func();
}
catch (error) {
setState({
type: type + '_ERROR',
[rootProp]: {
[loadingProp]: false,
[errorProp]: error
}
});
return;
}
setState({
type: type + '_SUCCESS',
[rootProp]: {
[loadingProp]: false,
[resultProp]: data
}
});
}
это в продакшене в двух проектах? Не смешите. Вы же написали это в середине декабря.
При этом, эта шляпа даже не работает.
import createStore from 'redux-light';
var createStore = require('redux-light').default;
1.Зачем тут вообще redux?
2. Зачем тут типы действий?
3. Как правильно получить текущее состояние?
let state = store.getState()