多个useState 怎么才能一次性 给useState里的变量赋值
来源:5-7 nextjs中的HOC

MaoGirlsQueen
2019-07-26
比如
const [vin,setVin] = useState(’’);
const [vinStar,setVinStar] = useState(’’);
const [duration,setDuration] = useState(’’);
const [analysisType,setAnalysisType] = useState(‘single’);
const [chartType,setChartType] = useState(‘bar’);
const [selectColumns,setSelectColumns] = useState([]);
const [groupByColumns,setGroupByColumns] = useState([]);
const [rightBlock,setRightBlock] = useState([]);
const [dslFilters,setDslFilters] = useState([]);
有多个的时候 从api过来赋值的话
const mySearchInit = (searchId)=>{
dispatch({
type: ‘common/fetchMySearchById’,
payload: { id: searchId },
callback: (response) => {
let newState = JSON.parse(response.condition);
initVlaue(newState,response);
previewChart(newState);
mountInit(newState);
},
});
}
initVlaue 我怎么才能简写才能一次性的赋值 要是state的话 {…this.state}就完事了
const initVlaue = (newState,response)=>{
setAnalysisType(newState.analysisType);
setChargeState(newState.chargeState);
setChartType(newState.chartType);
setDsl(newState.dsl);
setDslFilterCombiner(newState.dslFilterCombiner);
setDslFilters(newState.dslFilters);
setDuration(newState.duration);
setFrom(newState.from);
setGroupByColumns(newState.groupByColumns);
setIndex(newState.index);
setQuickDate(newState.quickDate);
setRightBlock(newState.rightBlock);
setSelectColumns(newState.selectColumns);
setTo(newState.to);
setVin(newState.vin);
setVinFilterVisible(newState.vinFilterVisible);
setVinStar(newState.vinStar);
setMySearch(response);
}
1回答
-
Jokcy
2019-07-28
直接一个state,值是对象就行了
022019-07-30
全栈进阶课程 React16.8+Next.js+Koa2一步到位开发Github
651 学习 · 311 问题
相似问题