ts+react: 使用dva时如何定义接口?

如代码所示:

@connect(({ taskOperate, loading }) => ({
    taskOperate,
    loading: loading.effects,
}))

举例,model.js中实际数据是
state:{
    testObj:{value:'15',id:'1'},
    testArray:[{value:'15',id:'1'},{value:'15',id:'1'}],
}

在页面中以内dva,ts告警

绑定元素“taskOperate”隐式具有“any”类型‘

请问在此处如何定义并使用接口?

阅读 3.6k
1 个回答

模仿了antd-pro的ts定义,搞定了。ts初体验,真的繁琐,写起来不爽。
附简要代码:

import React from 'react'
import router from 'umi/router'
import { connect, Effect } from 'dva';
import { Dispatch, AnyAction } from 'redux';
import { LoginStateIF } from '@/interfaces/stateIF';
import { LoginPropsIF } from '@/interfaces/propsIF';
import { Button, List, InputItem, Toast } from 'antd-mobile';
import { createForm } from 'rc-form'
import BizIcon from '@/components/BizIcon'
import { StateType } from './model';
import { ConnectState } from '@/models/connect';
import { validateErrorMessage } from '@/utils/tools';
import { Reducer } from 'redux';

import Logo from '@/assets/img/logo-white.png'
import styles from './index.less'

interface LoginProps {
    dispatch: Dispatch<AnyAction>;
    userLogin: StateType;
    submitting: boolean;
}
interface LoginState {
    type: string;
    autoLogin: boolean;
}

@connect(({ login, loading }: ConnectState) => ({
    userLogin: login,
    submitting: loading.effects['login/login'],
}))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题