Нуби Рамде.Итак, я столкнулся с некоторыми проблемами глубокого обновления.Кто-то рекомендовал Рамду.Теперь мне нужна помощь с этим.Вот мое состояние реакции
steps: {
currentStep: 1,
step1: {
data: {},
apiData: null,
comments:[],
reviewStatus: '',
reviewFeedback: ''
},
step2: {
data: {},
apiData: null,
comments:[],
reviewStatus: '',
reviewFeedback: ''
}
}
Я делал линзы для каждого шага data
, apiData,comments
, reviewStatus
, reviewFeedback
.
const step1ApiDataLens = lensPath(['steps', 'step1', 'apiData'])
const step1DataLens = lensPath(['steps', 'step1', 'data'])
const step1Status = lensPath(['steps','step1','reviewStatus'])
const step1Feedback = lensPath(['steps','step1','reviewFeedback'])
Иногда мне нужно обновитьapiData
один иногда вместе, как reviewStatus,reviewFeedback
. В настоящее время я обрабатываю его с помощью setState
обратного вызова. Это работает, но от 3 до 4 обратных вызовов выглядит странно.Есть ли другие способы установить несколько объективов одновременно?.
this.setState((state) => {
return set(step1ApiDataLens, response.data, state)
}, () => {
if (push) {
this.setState({
currentStatus: view(step1Status, this.state),
currentFeedback: view(step1Feedback, this.state)
}, () => {
this.setState((state)=>{
return set(currentStepLens,currentStep,state)
},()=>{
this.setState({
stepReady: true
})
})
})
}
});