redux store.dispatch在嵌套组件内不工作

redux store.dispatch在嵌套组件内不工作,redux,Redux,我做了实验工作来深度稀释它的复杂性,但它不起作用。当我点击+按钮时,没有反应。要快速开始并想象我对帮助者说了什么,我在链接中创建了它: const reducer=(状态=0,操作)=>{ 开关(动作类型){ 案例“增量”:返回状态+1; 案例“减量”:返回状态-1; 默认:返回状态; } } const{createStore}=Redux; const store=createStore(reducer); 常量计数器=()=>{ 返回( {store.getState()} + - )

我做了实验工作来深度稀释它的复杂性,但它不起作用。当我点击
+
按钮时,没有反应。要快速开始并想象我对帮助者说了什么,我在链接中创建了它:

const reducer=(状态=0,操作)=>{
开关(动作类型){
案例“增量”:返回状态+1;
案例“减量”:返回状态-1;
默认:返回状态;
}
}
const{createStore}=Redux;
const store=createStore(reducer);
常量计数器=()=>{
返回(

{store.getState()}


+ - ) } const render=ReactDOM.render( , document.getElementById('root')) ); //在这里添加您的代码 存储。订阅(呈现); render()

)

这不是react和redux的耦合方式(您需要使用react-redux库、提供程序组件和
useDispatch
useSelector
挂钩。决不引用
直接将
存储在一个组件中!)

或者干脆让react重播

此外,这是一种非常古老的redux风格,它将使您编写的代码比最终需要的代码多得多


我建议您遵循在

上提供的官方redux教程,这不是react和redux的结合方式(您需要使用react redux库、提供程序组件和
useDispatch
useSelector
挂钩。从不直接在您的组件中引用
存储

或者干脆让react重播

此外,这是一种非常古老的redux风格,它将使您编写的代码比最终需要的代码多得多


我建议您遵循

上提供的官方redux教程,谢谢您的学习建议,但是我使用的代码来自reduxjs创建者Dan Abramov和他的redux教程(关于
egghead.io
)。导师强调这是未来实际使用的基础。所以现在我想我必须知道这个代码片段中发生了什么,然后切换到您的教程。谢谢。我忽略了
从不引用存储在其中直接使用您的组件!)我猜这是答案,我接受答案,即使我不知道为什么。谢谢,如果你能告诉我为什么不能直接引用,我会感谢你的慷慨。如果没有告诉我,也谢谢。从本质上说,该教程展示了react redux是如何编写的,但不是你应该如何编写任何生产代码。如果它应该执行类似的操作,那么您已经错过了很多语法,即multiple
()=>
。直接使用
store
意味着您必须控制何时发生重播(正如您所注意到的),这相当棘手。在“真实生活”中,您可以使用
useSelector
钩子,因为它会自动处理所有这些。感谢您的学习建议,但是我使用的代码来自reduxjs创建者Dan Abramov和他的redux教程(关于
egghead.io
)。导师强调这是未来实际使用的基础。所以现在我想我必须知道这个代码片段中发生了什么,然后切换到您的教程。谢谢。我忽略了
从不引用存储在其中直接使用您的组件!)我猜这是答案,我接受答案,即使我不知道为什么。谢谢,如果你能告诉我为什么不能直接引用,我会感谢你的慷慨。如果没有告诉我,也谢谢。从本质上说,该教程展示了react redux是如何编写的,但不是你应该如何编写任何生产代码。如果它应该执行类似的操作,那么您已经错过了很多语法,即multiple
()=>
。直接使用
store
意味着您必须控制何时发生重播(正如您所注意到的),这相当棘手。在“真实生活”中,您使用
useSelector
钩子,因为它会自动处理所有这些。
const reducer=(state=0,action)=>{
  switch(action.type){
    case'INCREMENT':return state+1;
    case'DECREMENT':return state-1;
    default:return state;
  }
}
const {createStore}=Redux;
const store = createStore(reducer);

const Counter=()=>{
  
  return(
    <div>
    <p id='number'>{store.getState()}</p><br/>
    <button id='increment' onClick={store.dispatch({type:'INCREMENT'})}>+</button>
    <button id='decrement'>-</button>
    </div>
  
  )
}


const render=ReactDOM.render(
        <React.StrictMode>
  <Counter />
        </React.StrictMode>,
  document.getElementById('root')
);
// Add your code here
store.subscribe(render);
render()