【React dva】dva基礎用法記録
3630 ワード
1.左側Menu新規モジュール
2.左側のMenuがすでに現れて、ルートを増加します:
routs/TestKn.jsx--万物の本
TestProps、親コンポーネントが子コンポーネントに値を渡す
4.componentsコンポーネントフォルダ内のInventoryにTestKnフォルダを追加し、searchを追加する.jsx
このとき、テストボタンをクリックすると、親コンポーネントから送信された値がポップアップされます.
=>この弾枠はTestKn:5に由来する
5.モデルの追加
ModelsフォルダにtestKnを新規作成します.js
このモデルをenityのinventoryに登録します.js中
6.search.jsxの新しいボタン:
routesを更新します.jsxのTestKn.jsx
このとき、弾枠はsotreの10をポップアップします.
=>この弾枠の内容はStore:10から
7.ボタンを増やしてstoreの中値を変更する
search.jsx
TestKn.jsx
{ key: '/stock/test', name: ' React' }
2.左側のMenuがすでに現れて、ルートを増加します:
{
path: '/stock/test',
component: require('./TestKn'),
},
3.ルーティングディレクトリにTestKnを追加する.jsx routs/TestKn.jsx--万物の本
import React, { PropTypes } from 'react';
import { connect } from 'dva';
import Search from '../../components/Inventory/TestKn/search';
const TestKn = ({ stockInData, dispatch }) => {
const TestProps={
testId:5,
testAlert(value){
alert(" TestKn:"+value);
}
}
return (
);
};
TestKn.propTypes = {
dispatch: PropTypes.func,
};
function mapStateToProps(stockInData) {
return { stockInData };
}
export default connect(mapStateToProps)(TestKn);
TestProps、親コンポーネントが子コンポーネントに値を渡す
4.componentsコンポーネントフォルダ内のInventoryにTestKnフォルダを追加し、searchを追加する.jsx
import React, { PropTypes } from 'react';
import { Form, Input, Button, Select, Breadcrumb, DatePicker, Row, Col, Radio } from 'antd';
const search=({
testId,
testAlert
})=>{
return(
);
}
search.propTypes = {
testId:PropTypes.string,
testAlert:PropTypes.func,
};
export default Form.create()(search);
このとき、テストボタンをクリックすると、親コンポーネントから送信された値がポップアップされます.
=>この弾枠はTestKn:5に由来する
5.モデルの追加
ModelsフォルダにtestKnを新規作成します.js
import { parse } from 'qs';
import { message } from 'antd';
export default {
namespace: 'testKn',
state:{
testId:0,
},
subscriptions: {
setup({ dispatch, history }) {
history.listen((location) => {
if (location.pathname === '/stock/test') {
// testId 10
dispatch({
type: 'update',
payload: { ...location.query, testId: 10 },
});
}
});
},
},
effects: {
* update({ payload }, { call, put }) {
yield put({ type: 'showModal', payload });
},
},
reducers: {
update(state, action) {
return { ...state, ...action.payload };
},
}
}
このモデルをenityのinventoryに登録します.js中
app.model(require('../models/inventory/testKn'));
6.search.jsxの新しいボタン:
routesを更新します.jsxのTestKn.jsx
import React, { PropTypes } from 'react';
import { connect } from 'dva';
import Search from '../../components/Inventory/TestKn/search';
const TestKn = ({
dispatch,
storeInfo,
}) => {
console.log(storeInfo);
const TestProps={
testId:5,
testAlert(value){
alert(" TestKn:"+value);
},
testAlertByStore(){
alert(" Store:"+storeInfo.testId);
}
}
return (
);
};
TestKn.propTypes = {
dispatch: PropTypes.func,
};
function mapStateToProps(stockInData) {
return {
storeInfo:stockInData.testKn,
};
}
export default connect(mapStateToProps)(TestKn);
このとき、弾枠はsotreの10をポップアップします.
=>この弾枠の内容はStore:10から
7.ボタンを増やしてstoreの中値を変更する
search.jsx
TestKn.jsx
testUpdateStore(value){
dispatch({
type: 'testKn/update',
payload: { testId: value },
});