Reactjs Redux TypeScript无法将状态映射到道具

Reactjs Redux TypeScript无法将状态映射到道具,reactjs,typescript,redux,Reactjs,Typescript,Redux,我遵循JavaScript中的redux教程,但当我使用TypeScript编写时,我无法将状态映射到道具 App.tsx: import * as React from 'react'; import Todo from '../models/Todo'; import { createStore } from 'redux'; import { Provider } from 'react-redux'; import Main from './Main'; export interfac

我遵循JavaScript中的redux教程,但当我使用TypeScript编写时,我无法将状态映射到道具

App.tsx

import * as React from 'react';
import Todo from '../models/Todo';
import { createStore } from 'redux';
import { Provider } from 'react-redux';
import Main from './Main';

export interface State {
  todoList: Todo[];
  filterStatus: string;
  isAdding: boolean;
}

const defaultState: State = {
  todoList: [],
  filterStatus: 'SHOW_ALL',
  isAdding: false,
};

const reducer = (state: State = defaultState, action: {}) => {
  return state;
};

const store = createStore(reducer);

class App extends React.Component {
  render() {
    return (
      <Provider store={store}>
        <Main />
      </Provider>
    );
  }
}

export default App;
import*as React from'React';
从“../models/Todo”导入Todo;
从“redux”导入{createStore};
从'react redux'导入{Provider};
从“/Main”导入Main;
导出接口状态{
托多利斯特:托多[];
过滤器状态:字符串;
isAdding:布尔型;
}
常量defaultState:状态={
托多利斯特:[],
filterStatus:“全部显示”,
伊莎丁:错,
};
const reducer=(state:state=defaultState,action:{})=>{
返回状态;
};
const store=createStore(reducer);
类应用程序扩展了React.Component{
render(){
返回(
);
}
}
导出默认应用程序;
Main.tsx

import * as React from 'react';
import { connect } from 'react-redux';
import { State } from './App';

class Main extends React.Component {
  render() {
    return (
      <div style={{ backgroundColor: 'red' }}>{this.props.filterStatus}</div>
    );
  }
}

function mapStateToProps(state: State) {
  return {
    filterStatus: state.filterStatus,
  };
}

export default connect(mapStateToProps)(Main);
import*as React from'React';
从'react redux'导入{connect};
从“/App”导入{State};
类Main扩展了React.Component{
render(){
返回(
{this.props.filterStatus}
);
}
}
函数MapStateTops(状态:state){
返回{
filterStatus:state.filterStatus,
};
}
导出默认连接(MapStateTops)(主);
它说:

[ts]属性'filterStatus'在类型'Readonly&Readonly'上不存在


您需要为组件的支柱指定类型

export interface MainProps {
  filterStatus: string;
}

class Main extends React.Component<MainProps>
导出接口MainProps{
过滤器状态:字符串;
}
类Main扩展了React.Component

您需要为组件的道具指定打字

export interface MainProps {
  filterStatus: string;
}

class Main extends React.Component<MainProps>
导出接口MainProps{
过滤器状态:字符串;
}
类Main扩展了React.Component

感谢您的快速回答。没错。顺便说一句,我的状态界面怎么样,是正确的还是我需要折射仪?现在看起来还可以谢谢你的快速回答。没错。顺便说一句,我的状态界面怎么样,是正确的还是我需要折射器?现在看起来还可以