Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的操作在传递给EventHandler时不进行调度_Javascript_Reactjs_Redux_React Redux - Fatal编程技术网

Javascript 为什么我的操作在传递给EventHandler时不进行调度

Javascript 为什么我的操作在传递给EventHandler时不进行调度,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,这是我的第一个react redux项目,它应该执行简单的递增或递减操作,但是当动作传递给eventhandler时不会进行调度,尽管它们在外部工作。这是我的Redux.js文件中包含的代码 import React from "react"; import { createStore } from "redux"; import "./Redux.css" const reducer=(state,action)=> {

这是我的第一个react redux项目,它应该执行简单的递增或递减操作,但是当动作传递给eventhandler时不会进行调度,尽管它们在外部工作。这是我的Redux.js文件中包含的代码

import React from "react";
import  { createStore } from "redux";
import "./Redux.css"
const reducer=(state,action)=>
{
    if(action.type==="INCREASE") return {count:state.count+1}
    if(action.type==="DECREASE") return {count:state.count-1}
    return state
}
const store=createStore(reducer,{count:0})
const dec=()=>store.dispatch({type:"DECREASE"}) //not working

//store.dispatch({type:"DECREASE"}) //this works
const Redux=()=>
<div>
    <button onClick={()=>{store.dispatch({type:"INCREASE"})/*not working*/}}>INC</button> {store.getState().count }  
    <button onClick={dec}>DEC</button>
</div>
export default Redux; 

从“React”导入React;
从“redux”导入{createStore};
导入“/Redux.css”
const reducer=(状态、操作)=>
{
if(action.type==“INCREASE”)返回{count:state.count+1}
if(action.type==“DECREASE”)返回{count:state.count-1}
返回状态
}
const store=createStore(reducer,{count:0})
const dec=()=>store.dispatch({type:“reduce”})//不工作
//dispatch({type:“reduce”})//这是有效的
常数Redux=()=>
{store.dispatch({type:“INCREASE”})/*不工作*/}>INC{store.getState().count}
十二月
导出默认Redux;

将您的函数订阅到“更改侦听器”,该侦听器将在任何时候调度操作时调用。在您的情况下,需要在函数
Redux
之后添加
store.subscribe(Redux)

您可以在此处了解更多信息:

您的完整代码应如下所示:

从“React”导入React;
从“redux”导入{createStore};
导入“/Redux.css”
const reducer=(状态、操作)=>
{
if(action.type==“INCREASE”)返回{count:state.count+1}
if(action.type==“DECREASE”)返回{count:state.count-1}
返回状态
}
const store=createStore(reducer,{count:0})
const dec=()=>store.dispatch({type:“reduce”})//不工作
//dispatch({type:“reduce”})//这是有效的
常数Redux=()=>
{store.dispatch({type:“INCREASE”})/*不工作*/}>INC{store.getState().count}
十二月

store.subscribe(Redux)//尝试过了,它不起作用,我发现这是一种错误的模式,我的应用程序应该包装在一个提供商周围,然后使用connect处理订阅商店的操作,但我想知道为什么即使在添加store之后它也不起作用。subscribe(Redux)是的,没错。通常,你将整个应用程序包装在一个提供商中,但这不是唯一的方法。这应该行得通,我们遗漏了一些东西。看看codepen,它在codepen上工作,我不知道为什么它在我的chrome/firefox(从vs代码运行)上不工作。你在chrome/firefox devtools控制台中有任何错误吗?只是再次检查,没有,我没有。