Reactjs Can';t使用'访问状态;在react easy peasy中使用StoreState
我最近决定用easy peasy学习状态管理,并遵循基本教程,但我似乎无法访问状态。 以下是应用程序组件:-Reactjs Can';t使用'访问状态;在react easy peasy中使用StoreState,reactjs,redux,react-redux,state,easy-peasy,Reactjs,Redux,React Redux,State,Easy Peasy,我最近决定用easy peasy学习状态管理,并遵循基本教程,但我似乎无法访问状态。 以下是应用程序组件:- import model from './model'; import Todo from './components/Todo.tsx'; import { StoreProvider, createStore } from 'easy-peasy'; const store = createStore(model); function App() { retur
import model from './model';
import Todo from './components/Todo.tsx';
import { StoreProvider, createStore } from 'easy-peasy';
const store = createStore(model);
function App() {
return (
<StoreProvider store={store}>
<div className="App">
<Todo />
</div>
</StoreProvider>
);
}
export default App;
这是Todo文件:-
import React from 'react';
import {useStoreState } from 'easy-peasy';
const Todo = () => {
//The line below does not work for me, when i do 'state.todos' i get an error that todos does not exist on type
const todos = useStoreState(state=>state.todos);
return (
<div>
</div>
);
}
export default Todo;
从“React”导入React;
从“easy peasy”导入{useStoreState};
常数Todo=()=>{
//当我执行“state.todos”时,我得到一个错误,即类型上不存在todos
const todos=useStoreState(state=>state.todos);
返回(
);
}
导出默认Todo;
尝试删除.todos
,以便
const todos = useStoreState(state=>state.todos);
变成:
const todos = useStoreState(state=>state);
通过执行一些常规调试来帮助我们:
useStoreState(state=>console.log(state))
您得到了什么?错误是typescript错误还是runtime JS错误?在执行console.log时,我确实得到了包含model.JS文件中定义的“TODO”的对象。但我不明白为什么我不能通过执行“state.todos”来访问它。这又回到了第二个问题——这个错误是一个typescript错误吗,就像在你的编辑器中一样?或者它会在浏览器中中断?两者都有。显示编辑器中的错误,以及浏览器中的以下错误。D:/react/easy\peasy/learner/src/components/Todo.tsx(5,58)中的类型脚本错误:类型“StateMapper”上不存在属性“todos”。TS2339Yup修复了它,您提到的链接似乎很酷,可以更好地理解事情,谢谢您的帮助!
const todos = useStoreState(state=>state);