簡體   English   中英

如何去除反應組件內部的redux動作

[英]How to debounce redux action inside of react component

所以我試圖在反應組件內部去除一些動作。

import React, {Component} from "react";
import debounce from "lodash/debounce";
...

@connect(
  mapStateToProps,
  {someAction}
)
class SomeClass extends Component {
  constructor(props) {
    ...
    this.debouncedAction = debounce(props.someAction, 300);// someAction works ok
  }

  onSomeEvent = (...args) => {
   this.debouncedAction(args); // this does not work
  }
}

因此不會調用修改后的debouncedAction 有沒有辦法在mapStateToProps創建額外的操作而不做? 我需要保留兩者,因為一個用於過濾第二次(去抖動)用於搜索。

絕對有可能去除事件處理程序,然后使用該操作。

class SomeClass extends Component {

  // Debounce the event handler here instead
  onSomeEvent = debounce((...args) => {
    const { someAction } = this.props;
    someAction(...args);
  }, 300)

  // ...
}

它還確保每次執行事件回調時,它都使用當前的prop值,因此它始終是最新的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM