Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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 它';是否可以将计时器设置为减速器状态?反应+;重演_Javascript_Reactjs_Redux - Fatal编程技术网

Javascript 它';是否可以将计时器设置为减速器状态?反应+;重演

Javascript 它';是否可以将计时器设置为减速器状态?反应+;重演,javascript,reactjs,redux,Javascript,Reactjs,Redux,可以设置计时器来清除某些减速器状态吗?我有一个状态来显示“成功”、“错误”、“警告”消息 例如: 减速器: const statusState = { status: {action: '', result: ''} } ... CASE fetchContent: return { ...state, contents: [...state.contents, action.data], status: { ...state

可以设置计时器来清除某些减速器状态吗?我有一个状态来显示“成功”、“错误”、“警告”消息

例如:

减速器:

const statusState = {
   status: {action: '', result: ''}
}

...

CASE fetchContent:
    return {
      ...state,
      contents: [...state.contents, action.data],
      status: {
        ...state.status,
        action: action.type,
        result: action.result
      }
    }
组成部分:

render(){
   cost { status } = this.props

   if(status.action == "something" && status.result == "success"){
      alert("success");
   }
}

const mapStateToProps = store => ({
       status: store.initialState.status
   });

   export default connect(mapStateToProps)(Component);

如果我没有清除status.action和status.result警报将一直显示,可以设置计时器来清除警报?

创建一个清除status.action和status.result的清除操作。创建一个javscript超时函数,该函数在超时后调用清除操作。如下所示:

 clearStatus = ()=>{
       setTimeout(
        function() {
            //create a action that clears status and result
        },3000
       );
    }   

     render(){
           cost { status } = this.props

           if(status.action == "something" && status.result == "success"){
             //showMessage 
             clearStatus();
           }
        }

您确定组件语法吗?听起来很奇怪,渲染方法中包含了所有内容…@SilvioBiasiol fixed,没有注意到哈哈哈。您可以使用mapDispatchToProps并清除状态值确保这是可能的。最合适的地方是行动。它还假设您在减速机中添加了相应的大小写。旁注:在
render()
中使用
alert
看起来不合适。从React的POV
render()
应该只具有DOM输出,并且
alert
与DOM没有关系。工作正常,只需使用箭头函数setTimeout(()=>{this.props.resetStatus()},3000)