有没有办法告诉 *WHERE* 在 React/Redux 文件结构中调用了一个动作?

J S*_*olt 6 reactjs redux

有没有办法告诉WHERE动作被称为反应,和/终极版文件结构中?我正在寻找一个我可以看到被调用的动作。我只是不知道该操作在文件系统中的哪个位置被分派。有没有办法确定使用 Redux 工具?我觉得我现在正在追逐一只兔子。

帮助!谢谢!

mar*_*son 7

基本方法是:

  • 在代码库文件中搜索操作类型字符串
  • 看看它是否被用在动作创建者中
  • 执行“查找用法”或文本搜索以查看该操作创建器的导入和使用位置

此外,您还可以使用中间件,每当看到特定操作时就会记录堆栈跟踪。我认为我还没有见过这样的中间件,但这里有一个快速(并经过简要测试)的实现,它应该可以工作并为您提供返回调度位置的堆栈跟踪:

const createLogActionStackTraceMiddleware = (actionTypes = []) => {
    const logActionStackTraceMiddleware = storeAPI => next => action => {
        if(action.type && actionTypes.includes(action.type)) {
            console.trace(`Action: ${action.type}`);
        }

        return next(action);
    }

    return logActionStackTraceMiddleware;
}


// in your store setup:
const stackTraceMiddleware = createLogActionStackTraceMiddleware(["ACTION_1", "ACTION_2"]);

const middlewareEnhancer = applyMiddleware(thunkMiddleware, stackTraceMiddleware);
Run Code Online (Sandbox Code Playgroud)