react之taro介绍
<p> 从vue转战react了,今天介绍下第一次用到taro的一个介绍,</p><p> </p>
<p> 1、首页要利用小程序的分包subPackages进行设置,首次加载不要太多</p>
<div class="cnblogs_code"><img id="code_img_closed_05dc558b-fef0-4b17-8e2f-b713e8bbdd57" class="code_img_closed lazyload" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif">配置<img id="code_img_opened_05dc558b-fef0-4b17-8e2f-b713e8bbdd57" class="code_img_opened lazyload" style="display: none" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif">
<div id="cnblogs_code_open_05dc558b-fef0-4b17-8e2f-b713e8bbdd57" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> config: Config =<span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)"> 2</span> <span style="color: rgba(0, 0, 0, 1)"> pages: [
</span><span style="color: rgba(0, 128, 128, 1)"> 3</span> 'pages/home/index',<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">首页</span>
<span style="color: rgba(0, 128, 128, 1)"> 4</span> 'pages/mine/index', <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 我的页面</span>
<span style="color: rgba(0, 128, 128, 1)"> 5</span> 'pages/aboutUs/index', <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 关于我们</span>
<span style="color: rgba(0, 128, 128, 1)"> 6</span> 'pages/feedback/index', <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 意见反馈</span>
<span style="color: rgba(0, 128, 128, 1)"> 7</span> <span style="color: rgba(0, 0, 0, 1)"> ],
</span><span style="color: rgba(0, 128, 128, 1)"> 8</span> "subPackages"<span style="color: rgba(0, 0, 0, 1)">: [
</span><span style="color: rgba(0, 128, 128, 1)"> 9</span> <span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)">10</span> "root": "subPages/"<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)">11</span> "pages"<span style="color: rgba(0, 0, 0, 1)">: [
</span><span style="color: rgba(0, 128, 128, 1)">12</span> "subjectBalance/index", <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">科目余额表页面</span>
<span style="color: rgba(0, 128, 128, 1)">13</span> "subjectBalance/subjectBaDetail/index", <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">科目余额表详情页面</span>
<span style="color: rgba(0, 128, 128, 1)">14</span> "assetsLiabilit/index", <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">资产负债表页面</span>
<span style="color: rgba(0, 128, 128, 1)">15</span> "profitLossRF/index", <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">损益表</span>
<span style="color: rgba(0, 128, 128, 1)">16</span> "finalTransaction/index", <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">期末结账页面 </span>
<span style="color: rgba(0, 128, 128, 1)">17</span> "finalTransaction/confirmCheck/index", <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">期末结账结账、审核、反结账页面 </span>
<span style="color: rgba(0, 128, 128, 1)">18</span> <span style="color: rgba(0, 0, 0, 1)"> ],
</span><span style="color: rgba(0, 128, 128, 1)">19</span> <span style="color: rgba(0, 0, 0, 1)"> },
</span><span style="color: rgba(0, 128, 128, 1)">20</span> <span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)">21</span> "root": "childPages/"<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)">22</span> "pages"<span style="color: rgba(0, 0, 0, 1)">: [
</span><span style="color: rgba(0, 128, 128, 1)">23</span> 'createAccount/index',<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">创建帐套</span>
<span style="color: rgba(0, 128, 128, 1)">24</span> 'voucherEntry/index',<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">凭证录入</span>
<span style="color: rgba(0, 128, 128, 1)">25</span> 'voucherDetails/index',<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">凭证详情</span>
<span style="color: rgba(0, 128, 128, 1)">26</span> 'selectSubject/index',<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">tap科目页</span>
<span style="color: rgba(0, 128, 128, 1)">27</span> 'voucherLook/index',<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">凭证列表页</span>
<span style="color: rgba(0, 128, 128, 1)">28</span> 'selectSubjectCur/index'<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">科目搜索页</span>
<span style="color: rgba(0, 128, 128, 1)">29</span> <span style="color: rgba(0, 0, 0, 1)"> ],
</span><span style="color: rgba(0, 128, 128, 1)">30</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)">31</span> <span style="color: rgba(0, 0, 0, 1)"> ],
</span><span style="color: rgba(0, 128, 128, 1)">32</span> <span style="color: rgba(0, 0, 0, 1)"> window: {
</span><span style="color: rgba(0, 128, 128, 1)">33</span> backgroundTextStyle: 'light'<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)">34</span> navigationBarBackgroundColor: '#fff'<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)">35</span> navigationBarTitleText: ''<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)">36</span> navigationBarTextStyle: 'black'<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)">37</span> navigationStyle: 'custom'
<span style="color: rgba(0, 128, 128, 1)">38</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)">39</span> }</pre>
</div>
<span class="cnblogs_code_collapse"><br></span></div>
<p> 2、组件不要有任何副作用,尽量使用纯函数</p>
<div class="cnblogs_code"><img id="code_img_closed_c34ab532-620f-412a-a552-bfdfe0c915d5" class="code_img_closed lazyload" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif"><img id="code_img_opened_c34ab532-620f-412a-a552-bfdfe0c915d5" class="code_img_opened lazyload" style="display: none" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif">
<div id="cnblogs_code_open_c34ab532-620f-412a-a552-bfdfe0c915d5" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> const createCusPicker = (WarpedComponent) =><span style="color: rgba(0, 0, 0, 1)"> class extends WarpedComponent {
</span><span style="color: rgba(0, 128, 128, 1)"> 2</span> static displayName =<span style="color: rgba(0, 0, 0, 1)"> `HOC${getDisplayName(WarpedComponent)}`
</span><span style="color: rgba(0, 128, 128, 1)"> 3</span> <span style="color: rgba(0, 0, 0, 1)">render() {
</span><span style="color: rgba(0, 128, 128, 1)"> 4</span> <span style="color: rgba(0, 0, 255, 1)">try</span><span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)"> 5</span> const props = { ...<span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.props };
</span><span style="color: rgba(0, 128, 128, 1)"> 6</span> const { headerClassName, header } =<span style="color: rgba(0, 0, 0, 1)"> props;
</span><span style="color: rgba(0, 128, 128, 1)"> 7</span> <span style="color: rgba(0, 0, 255, 1)">delete</span><span style="color: rgba(0, 0, 0, 1)"> props.headerClassName;
</span><span style="color: rgba(0, 128, 128, 1)"> 8</span> <span style="color: rgba(0, 0, 255, 1)">delete</span><span style="color: rgba(0, 0, 0, 1)"> props.header;
</span><span style="color: rgba(0, 128, 128, 1)"> 9</span> const tree =<span style="color: rgba(0, 0, 0, 1)"> super.render();
</span><span style="color: rgba(0, 128, 128, 1)">10</span>
<span style="color: rgba(0, 128, 128, 1)">11</span> const head = tree.children.children;
</span><span style="color: rgba(0, 128, 128, 1)">12</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (header) {
</span><span style="color: rgba(0, 128, 128, 1)">13</span> head.children =<span style="color: rgba(0, 0, 0, 1)"> header;
</span><span style="color: rgba(0, 128, 128, 1)">14</span> head.props.children =<span style="color: rgba(0, 0, 0, 1)"> header;
</span><span style="color: rgba(0, 128, 128, 1)">15</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)">16</span> <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (headerClassName) {
</span><span style="color: rgba(0, 128, 128, 1)">17</span> head.props.className = head.props.className + ' ' +<span style="color: rgba(0, 0, 0, 1)"> headerClassName;
</span><span style="color: rgba(0, 128, 128, 1)">18</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)">19</span>
<span style="color: rgba(0, 128, 128, 1)">20</span> const element =<span style="color: rgba(0, 0, 0, 1)"> (Taro as any).cloneElement(tree, {
</span><span style="color: rgba(0, 128, 128, 1)">21</span> <span style="color: rgba(0, 0, 0, 1)"> ...tree.props,
</span><span style="color: rgba(0, 128, 128, 1)">22</span> <span style="color: rgba(0, 0, 0, 1)"> ...props,
</span><span style="color: rgba(0, 128, 128, 1)">23</span> <span style="color: rgba(0, 0, 0, 1)"> }, tree.props.children)
</span><span style="color: rgba(0, 128, 128, 1)">24</span> <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> element
</span><span style="color: rgba(0, 128, 128, 1)">25</span> } <span style="color: rgba(0, 0, 255, 1)">catch</span><span style="color: rgba(0, 0, 0, 1)"> (e) {
</span><span style="color: rgba(0, 128, 128, 1)">26</span> <span style="color: rgba(0, 0, 255, 1)">return</span> <WarpedComponent {...<span style="color: rgba(0, 0, 255, 1)">this</span>.props} />
<span style="color: rgba(0, 128, 128, 1)">27</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)">28</span> <span style="color: rgba(0, 0, 0, 1)">}
</span><span style="color: rgba(0, 128, 128, 1)">29</span> <span style="color: rgba(0, 0, 0, 1)">}
</span><span style="color: rgba(0, 128, 128, 1)">30</span>
<span style="color: rgba(0, 128, 128, 1)">31</span> export <span style="color: rgba(0, 0, 255, 1)">default</span> createCusPicker(Picker) as ComponentClass<PickerSelectorProps &<span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)">32</span> header?<span style="color: rgba(0, 0, 0, 1)">: ReactNode
</span><span style="color: rgba(0, 128, 128, 1)">33</span> headerClassName?<span style="color: rgba(0, 0, 0, 1)">: string
</span><span style="color: rgba(0, 128, 128, 1)">34</span> }></pre>
</div>
<span class="cnblogs_code_collapse">View Code</span></div>
<p> 3、定义dva仓库难免要用到reducers去同步修改state的值,可以将公用的state抽离出来</p>
<div class="cnblogs_code"><img id="code_img_closed_919b3964-e49a-4e49-a246-56bfff4b52cd" class="code_img_closed lazyload" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif"><img id="code_img_opened_919b3964-e49a-4e49-a246-56bfff4b52cd" class="code_img_opened lazyload" style="display: none" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif">
<div id="cnblogs_code_open_919b3964-e49a-4e49-a246-56bfff4b52cd" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> import _modelExtend from 'dva-model-extend'
<span style="color: rgba(0, 128, 128, 1)"> 2</span> import { DvaModel } from '@ts-types/dva'<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 3</span>
<span style="color: rgba(0, 128, 128, 1)"> 4</span> const commonModel =<span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)"> 5</span> <span style="color: rgba(0, 0, 0, 1)">reducers: {
</span><span style="color: rgba(0, 128, 128, 1)"> 6</span> <span style="color: rgba(0, 0, 0, 1)"> updateState (state: any, { payload }: any) {
</span><span style="color: rgba(0, 128, 128, 1)"> 7</span> <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)"> 8</span> <span style="color: rgba(0, 0, 0, 1)"> ...state,
</span><span style="color: rgba(0, 128, 128, 1)"> 9</span> <span style="color: rgba(0, 0, 0, 1)"> ...payload,
</span><span style="color: rgba(0, 128, 128, 1)">10</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)">11</span> <span style="color: rgba(0, 0, 0, 1)"> },
</span><span style="color: rgba(0, 128, 128, 1)">12</span> <span style="color: rgba(0, 0, 0, 1)"> error(state: any, { payload }: any) {
</span><span style="color: rgba(0, 128, 128, 1)">13</span> <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)">14</span> <span style="color: rgba(0, 0, 0, 1)"> ...state,
</span><span style="color: rgba(0, 128, 128, 1)">15</span> <span style="color: rgba(0, 0, 0, 1)"> error: payload,
</span><span style="color: rgba(0, 128, 128, 1)">16</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)">17</span> <span style="color: rgba(0, 0, 0, 1)"> },
</span><span style="color: rgba(0, 128, 128, 1)">18</span> <span style="color: rgba(0, 0, 0, 1)"> updateParams(state: any, { payload }: any) {
</span><span style="color: rgba(0, 128, 128, 1)">19</span> const { params } =<span style="color: rgba(0, 0, 0, 1)"> state;
</span><span style="color: rgba(0, 128, 128, 1)">20</span> <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)">21</span> <span style="color: rgba(0, 0, 0, 1)"> ...state,
</span><span style="color: rgba(0, 128, 128, 1)">22</span> <span style="color: rgba(0, 0, 0, 1)"> params: {
</span><span style="color: rgba(0, 128, 128, 1)">23</span> <span style="color: rgba(0, 0, 0, 1)"> ...params,
</span><span style="color: rgba(0, 128, 128, 1)">24</span> <span style="color: rgba(0, 0, 0, 1)"> ...payload
</span><span style="color: rgba(0, 128, 128, 1)">25</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)">26</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)">27</span> <span style="color: rgba(0, 0, 0, 1)"> },
</span><span style="color: rgba(0, 128, 128, 1)">28</span> <span style="color: rgba(0, 0, 0, 1)"> updatePagination(state: any, { payload }: any) {
</span><span style="color: rgba(0, 128, 128, 1)">29</span> const { pagination } =<span style="color: rgba(0, 0, 0, 1)"> state;
</span><span style="color: rgba(0, 128, 128, 1)">30</span> <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)">31</span> <span style="color: rgba(0, 0, 0, 1)"> ...state,
</span><span style="color: rgba(0, 128, 128, 1)">32</span> <span style="color: rgba(0, 0, 0, 1)"> pagination: {
</span><span style="color: rgba(0, 128, 128, 1)">33</span> <span style="color: rgba(0, 0, 0, 1)"> ...pagination,
</span><span style="color: rgba(0, 128, 128, 1)">34</span> <span style="color: rgba(0, 0, 0, 1)"> ...payload
</span><span style="color: rgba(0, 128, 128, 1)">35</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)">36</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)">37</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)">38</span> <span style="color: rgba(0, 0, 0, 1)">},
</span><span style="color: rgba(0, 128, 128, 1)">39</span> <span style="color: rgba(0, 0, 0, 1)">}
</span><span style="color: rgba(0, 128, 128, 1)">40</span>
<span style="color: rgba(0, 128, 128, 1)">41</span> const modelExtend = <T>(model: DvaModel<T>): DvaModel<T> =><span style="color: rgba(0, 0, 0, 1)"> _modelExtend(commonModel, model);
</span><span style="color: rgba(0, 128, 128, 1)">42</span>
<span style="color: rgba(0, 128, 128, 1)">43</span> <span style="color: rgba(0, 0, 0, 1)">export {
</span><span style="color: rgba(0, 128, 128, 1)">44</span> <span style="color: rgba(0, 0, 0, 1)">modelExtend,
</span><span style="color: rgba(0, 128, 128, 1)">45</span> <span style="color: rgba(0, 0, 0, 1)">commonModel,
</span><span style="color: rgba(0, 128, 128, 1)">46</span> }</pre>
</div>
<span class="cnblogs_code_collapse">公共方法</span></div>
<div class="cnblogs_code"><img id="code_img_closed_c2dd272e-ba29-4bdf-b74e-197f81c8eb2c" class="code_img_closed lazyload" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif"><img id="code_img_opened_c2dd272e-ba29-4bdf-b74e-197f81c8eb2c" class="code_img_opened lazyload" style="display: none" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif">
<div id="cnblogs_code_open_c2dd272e-ba29-4bdf-b74e-197f81c8eb2c" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> import { VoucherEntryState } from '@ts-types/store'<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">2</span> import { modelExtend } from './_common'<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">3</span> import { fetchVoucherNum, fetchVoucherUpload, fetchDeleteVoucher, fetchSummaryList, fetchVoucherCreate, fetchVoucherUpdate, fetchVoucherEntryTime } from '@services/voucherEntry'<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">4</span> import { ReduxSagaEffects, ReduxAction } from '@ts-types/dva'<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">5</span> import { fetchVoucherDetail } from '@services/voucherDetails'<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">6</span>
<span style="color: rgba(0, 128, 128, 1)">7</span> const namespace = 'voucherEntry'<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">8</span> export <span style="color: rgba(0, 0, 255, 1)">default</span> modelExtend<VoucherEntryState><span style="color: rgba(0, 0, 0, 1)">({
</span><span style="color: rgba(0, 128, 128, 1)">9</span> <span style="color: rgba(0, 0, 0, 1)">namespace,
</span><span style="color: rgba(0, 128, 128, 1)"> 10</span> <span style="color: rgba(0, 0, 0, 1)">state: {
</span><span style="color: rgba(0, 128, 128, 1)"> 11</span> data: <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)"> 12</span> subjectCode: [],<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">科目列表id</span>
<span style="color: rgba(0, 128, 128, 1)"> 13</span> summaryList: [],<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">摘要列表</span>
<span style="color: rgba(0, 128, 128, 1)"> 14</span> summary: '',<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">摘要</span>
<span style="color: rgba(0, 128, 128, 1)"> 15</span> files: [],<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">文件列表</span>
<span style="color: rgba(0, 128, 128, 1)"> 16</span> voucherlist: [{ money: "", borrowFlag: 1, voucherId: 1, subjectCode: <span style="color: rgba(0, 0, 255, 1)">null</span> }, { money: "", borrowFlag: 0, voucherId: 2, subjectCode: <span style="color: rgba(0, 0, 255, 1)">null</span> }],<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">1借0贷</span>
<span style="color: rgba(0, 128, 128, 1)"> 17</span> fillinDate: <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)"> 18</span> <span style="color: rgba(0, 0, 0, 1)"> voucherTime: [],
</span><span style="color: rgba(0, 128, 128, 1)"> 19</span> <span style="color: rgba(0, 0, 0, 1)"> editDetail: {}
</span><span style="color: rgba(0, 128, 128, 1)"> 20</span> <span style="color: rgba(0, 0, 0, 1)">},
</span><span style="color: rgba(0, 128, 128, 1)"> 21</span> <span style="color: rgba(0, 0, 0, 1)">reducers: {
</span><span style="color: rgba(0, 128, 128, 1)"> 22</span> <span style="color: rgba(0, 0, 0, 1)"> asyncSubjectCode(state, { payload }) {
</span><span style="color: rgba(0, 128, 128, 1)"> 23</span> const newState =<span style="color: rgba(0, 0, 0, 1)"> JSON.parse(JSON.stringify(state));
</span><span style="color: rgba(0, 128, 128, 1)"> 24</span> const { code, id, subject } =<span style="color: rgba(0, 0, 0, 1)"> payload;
</span><span style="color: rgba(0, 128, 128, 1)"> 25</span> newState.voucherlist.subjectCode =<span style="color: rgba(0, 0, 0, 1)"> code
</span><span style="color: rgba(0, 128, 128, 1)"> 26</span> newState.voucherlist.subject =<span style="color: rgba(0, 0, 0, 1)"> subject
</span><span style="color: rgba(0, 128, 128, 1)"> 27</span> <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> newState
</span><span style="color: rgba(0, 128, 128, 1)"> 28</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)"> 29</span> <span style="color: rgba(0, 0, 0, 1)">},
</span><span style="color: rgba(0, 128, 128, 1)"> 30</span> <span style="color: rgba(0, 0, 0, 1)">effects: {
</span><span style="color: rgba(0, 128, 128, 1)"> 31</span> *<span style="color: rgba(0, 0, 0, 1)">requestVoucherEntryTime(_action: ReduxAction, { call, put }: ReduxSagaEffects) {
</span><span style="color: rgba(0, 128, 128, 1)"> 32</span> const { success, data } =<span style="color: rgba(0, 0, 0, 1)"> yield call(fetchVoucherEntryTime, _action.accountId);
</span><span style="color: rgba(0, 128, 128, 1)"> 33</span> <span style="color: rgba(0, 0, 255, 1)">if</span> (!success || !<span style="color: rgba(0, 0, 0, 1)">data) {
</span><span style="color: rgba(0, 128, 128, 1)"> 34</span> <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 35</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)"> 36</span> <span style="color: rgba(0, 0, 0, 1)"> yield put({
</span><span style="color: rgba(0, 128, 128, 1)"> 37</span> type: 'updateState'<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)"> 38</span> <span style="color: rgba(0, 0, 0, 1)"> payload: { voucherTime: data }
</span><span style="color: rgba(0, 128, 128, 1)"> 39</span> <span style="color: rgba(0, 0, 0, 1)"> })
</span><span style="color: rgba(0, 128, 128, 1)"> 40</span> <span style="color: rgba(0, 0, 0, 1)"> },
</span><span style="color: rgba(0, 128, 128, 1)"> 41</span> *<span style="color: rgba(0, 0, 0, 1)">requestVoucherNum(_action: ReduxAction, { call, put }: ReduxSagaEffects) {
</span><span style="color: rgba(0, 128, 128, 1)"> 42</span> const { success, data } =<span style="color: rgba(0, 0, 0, 1)"> yield call(fetchVoucherNum, _action.accountId);
</span><span style="color: rgba(0, 128, 128, 1)"> 43</span> <span style="color: rgba(0, 0, 255, 1)">if</span> (!success || !<span style="color: rgba(0, 0, 0, 1)">data) {
</span><span style="color: rgba(0, 128, 128, 1)"> 44</span> <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 45</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)"> 46</span> <span style="color: rgba(0, 0, 0, 1)"> yield put({
</span><span style="color: rgba(0, 128, 128, 1)"> 47</span> type: 'updateState'<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)"> 48</span> <span style="color: rgba(0, 0, 0, 1)"> payload: { data }
</span><span style="color: rgba(0, 128, 128, 1)"> 49</span> <span style="color: rgba(0, 0, 0, 1)"> })
</span><span style="color: rgba(0, 128, 128, 1)"> 50</span> <span style="color: rgba(0, 0, 0, 1)"> },
</span><span style="color: rgba(0, 128, 128, 1)"> 51</span> *<span style="color: rgba(0, 0, 0, 1)">requestVoucherUpload(_action: ReduxAction, { call, put }: ReduxSagaEffects) {
</span><span style="color: rgba(0, 128, 128, 1)"> 52</span> const { success, data } =<span style="color: rgba(0, 0, 0, 1)"> yield call(fetchVoucherUpload, _action.files);
</span><span style="color: rgba(0, 128, 128, 1)"> 53</span> <span style="color: rgba(0, 0, 255, 1)">if</span> (!success || !<span style="color: rgba(0, 0, 0, 1)">data) {
</span><span style="color: rgba(0, 128, 128, 1)"> 54</span> <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 55</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)"> 56</span> <span style="color: rgba(0, 0, 0, 1)"> yield put({
</span><span style="color: rgba(0, 128, 128, 1)"> 57</span> type: 'updateState'<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)"> 58</span> <span style="color: rgba(0, 0, 0, 1)"> payload: { data }
</span><span style="color: rgba(0, 128, 128, 1)"> 59</span> <span style="color: rgba(0, 0, 0, 1)"> })
</span><span style="color: rgba(0, 128, 128, 1)"> 60</span> <span style="color: rgba(0, 0, 0, 1)"> },
</span><span style="color: rgba(0, 128, 128, 1)"> 61</span> *<span style="color: rgba(0, 0, 0, 1)">requestDeleteVoucher(_action: ReduxAction, { call }: ReduxSagaEffects) {
</span><span style="color: rgba(0, 128, 128, 1)"> 62</span> const { success, data } =<span style="color: rgba(0, 0, 0, 1)"> yield call(fetchDeleteVoucher, _action.voucherId);
</span><span style="color: rgba(0, 128, 128, 1)"> 63</span> <span style="color: rgba(0, 0, 255, 1)">if</span> (!success || !<span style="color: rgba(0, 0, 0, 1)">data) {
</span><span style="color: rgba(0, 128, 128, 1)"> 64</span> <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 65</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)"> 66</span> <span style="color: rgba(0, 0, 0, 1)"> },
</span><span style="color: rgba(0, 128, 128, 1)"> 67</span> *<span style="color: rgba(0, 0, 0, 1)">requestSummaryList(_action: ReduxAction, { call, put }: ReduxSagaEffects) {
</span><span style="color: rgba(0, 128, 128, 1)"> 68</span> const { success, data } =<span style="color: rgba(0, 0, 0, 1)"> yield call(fetchSummaryList, _action.voucherId);
</span><span style="color: rgba(0, 128, 128, 1)"> 69</span> <span style="color: rgba(0, 0, 255, 1)">if</span> (!success || !<span style="color: rgba(0, 0, 0, 1)">data) {
</span><span style="color: rgba(0, 128, 128, 1)"> 70</span> <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 71</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)"> 72</span> <span style="color: rgba(0, 0, 0, 1)"> yield put({
</span><span style="color: rgba(0, 128, 128, 1)"> 73</span> type: 'updateState'<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)"> 74</span> <span style="color: rgba(0, 0, 0, 1)"> payload: { summaryList: data }
</span><span style="color: rgba(0, 128, 128, 1)"> 75</span> <span style="color: rgba(0, 0, 0, 1)"> })
</span><span style="color: rgba(0, 128, 128, 1)"> 76</span> <span style="color: rgba(0, 0, 0, 1)"> },
</span><span style="color: rgba(0, 128, 128, 1)"> 77</span> *<span style="color: rgba(0, 0, 0, 1)">requestVoucherCreate(_action: ReduxAction, { call }: ReduxSagaEffects) {
</span><span style="color: rgba(0, 128, 128, 1)"> 78</span> const { success, data } =<span style="color: rgba(0, 0, 0, 1)"> yield call(fetchVoucherCreate, _action.voucherVO);
</span><span style="color: rgba(0, 128, 128, 1)"> 79</span> <span style="color: rgba(0, 0, 255, 1)">if</span> (!success || !<span style="color: rgba(0, 0, 0, 1)">data) {
</span><span style="color: rgba(0, 128, 128, 1)"> 80</span> <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 81</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)"> 82</span> <span style="color: rgba(0, 0, 0, 1)"> },
</span><span style="color: rgba(0, 128, 128, 1)"> 83</span> *<span style="color: rgba(0, 0, 0, 1)">requestVoucherUpdate(_action: ReduxAction, { call }: ReduxSagaEffects) {
</span><span style="color: rgba(0, 128, 128, 1)"> 84</span> const { success, data } =<span style="color: rgba(0, 0, 0, 1)"> yield call(fetchVoucherUpdate, _action.voucherVO);
</span><span style="color: rgba(0, 128, 128, 1)"> 85</span> <span style="color: rgba(0, 0, 255, 1)">if</span> (!success || !<span style="color: rgba(0, 0, 0, 1)">data) {
</span><span style="color: rgba(0, 128, 128, 1)"> 86</span> <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 87</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)"> 88</span>
<span style="color: rgba(0, 128, 128, 1)"> 89</span> <span style="color: rgba(0, 0, 0, 1)"> },
</span><span style="color: rgba(0, 128, 128, 1)"> 90</span> *<span style="color: rgba(0, 0, 0, 1)">requestVoucherDetail(_action: ReduxAction, { call, put }: ReduxSagaEffects) {
</span><span style="color: rgba(0, 128, 128, 1)"> 91</span> const { success, data } =<span style="color: rgba(0, 0, 0, 1)"> yield call(fetchVoucherDetail, _action.payload);
</span><span style="color: rgba(0, 128, 128, 1)"> 92</span> <span style="color: rgba(0, 0, 255, 1)">if</span> (!success || !<span style="color: rgba(0, 0, 0, 1)">data) {
</span><span style="color: rgba(0, 128, 128, 1)"> 93</span> <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 94</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)"> 95</span> <span style="color: rgba(0, 0, 0, 1)"> yield put({
</span><span style="color: rgba(0, 128, 128, 1)"> 96</span> type: 'updateState'<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)"> 97</span> <span style="color: rgba(0, 0, 0, 1)"> payload: { editDetail: data }
</span><span style="color: rgba(0, 128, 128, 1)"> 98</span> <span style="color: rgba(0, 0, 0, 1)"> })
</span><span style="color: rgba(0, 128, 128, 1)"> 99</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)">100</span> <span style="color: rgba(0, 0, 0, 1)">}
</span><span style="color: rgba(0, 128, 128, 1)">101</span> });</pre>
</div>
<span class="cnblogs_code_collapse">使用如下</span></div>
<p> 4、taro存在的坑</p>
<p> 4.1、taro-ui的<code class="language-js">AtInput组件,在触发onBlur事件的时候会同步触发onChange事件</code></p>
<p> 4.2、taro-ui的Picker组件在设置自定义数组然后默认值的时候他只会认识第一次数组传入的值,默认值也是,后期不会发生改变</p>
<p> 4.3、taro的Input标签的value在onInput使用的时候会发现其不是受控组件,原因是此value只是一个默认的value,并不是我们传统的value,要想改变在onInput事件中return</p>
<p> 一个值</p>
<p> 4.4、Taro.reLaunch可以进行页面栈的清空,但是有一个bug就是他会造成页面的闪现,可以getCurrentPages获取页面数量在使用navigateBack进行返回</p>
<p> 5、适配iPhone x底部线 const styleBottom =Taro.getSystemInfoSync().model === "iPhone X" ? { marginBottom: "32px" } : { marginBottom: "0px" };</p>
<p> 6、设置小程序分享</p>
<div class="cnblogs_code"><img id="code_img_closed_db473e16-3138-4eb1-be89-934e7d1f6ed4" class="code_img_closed lazyload" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif"><img id="code_img_opened_db473e16-3138-4eb1-be89-934e7d1f6ed4" class="code_img_opened lazyload" style="display: none" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif">
<div id="cnblogs_code_open_db473e16-3138-4eb1-be89-934e7d1f6ed4" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> <span style="color: rgba(0, 0, 0, 1)">onShareAppMessage() {
</span><span style="color: rgba(0, 128, 128, 1)">2</span> <span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)">3</span> title: ''<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)">4</span> path: '/pages/home/index'
<span style="color: rgba(0, 128, 128, 1)">5</span> <span style="color: rgba(0, 0, 0, 1)"> }
</span><span style="color: rgba(0, 128, 128, 1)">6</span> }</pre>
</div>
<span class="cnblogs_code_collapse">View Code</span></div>
</div>
<div id="MySignature" role="contentinfo">
一条不甘于平凡的咸鱼分享<br><br>
来源:https://www.cnblogs.com/cq1715584439/p/12104252.html
頁:
[1]