欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

dva 多級json

老白1年前8瀏覽0評論

dva是一款基于react和redux的輕量級框架,可以幫助我們更快速地開發react應用。在日常使用中,我們經常會遇到需要處理多級json數據的情況。本文將為大家介紹dva處理多級json數據的方法。

首先,我們需要在models文件夾下定義數據模型。假設我們的json數據如下:

{
"name": "Tom",
"age": 18,
"hobbies": {
"sports": ["basketball", "football"],
"music": ["piano", "guitar"]
}
}

我們可以定義如下的數據模型:

export default {
namespace: 'example',
state: {
name: '',
age: 0,
hobbies: {
sports: [],
music: []
}
},
reducers: {
save(state, { payload }) {
return { ...state, ...payload };
},
},
effects: {
*fetch({ payload }, { call, put }) {
const response = yield call(query, payload);
yield put({
type: 'save',
payload: response,
});
},
},
};

在以上的模型中,我們定義了一個名為example的namespace, state中聲明了name、age和hobbies三個屬性。其中,hobbies又包含了sports和music兩個屬性,它們的值為一個空數組。

接下來,在我們的組件中可以通過以下方式調用我們的model:

import React from 'react';
import { connect } from 'dva';
const Example = ({ name, age, hobbies }) =>{
return (
<div>
<p><b>name:</b> {name}</p>
<p><b>age:</b> {age}</p>
<p><b>sports:</b> {hobbies.sports.join(', ')}</p>
<p><b>music:</b> {hobbies.music.join(', ')}</p>
</div>
);
};
export default connect(({ example }) =>example)(Example);

在以上代碼中,我們通過connect高階組件來獲取example模型中的數據,通過props傳遞給組件。

處理多級json數據,我們可以通過以上的方式來定義model,然后在組件中進行調用。此外,dva還提供了一些語法糖,使其更方便處理復雜的數據結構,比如immutability-helper和normalizr等。