2

我正在创建一个能够使用电子打开文件夹的 JavaScript 应用程序。前端是用 Typescript、React 和 redux 工具包编写的。
每当我单击按钮以显示打开对话框时,它会出现两次,一个接一个。
我试过调试,发现减速器只被调用一次,但 ipcRenderer 函数被调用了两次。
下面是代码

// Api that talks to electron
export function openFolder() {
  const files: Directory = ipcRenderer.sendSync("open-folder");
  return files;
}

// component that initiates the whole process
const Sidebar: React.FC = () => {

  const { mainDir } = useSelector(getEditor);

  const dispatch = useDispatch();

  const handleDirLoad = () => {
    dispatch(openDir());
  }

  return (
    <div className="sidebar-container" onClick={handleDirLoad}>
      <SidebarMenu dir={mainDir}/>
    </div>
  )

}
// The slice reducer
const editorSlice = createSlice({
  name: "editor",
  initialState,
  reducers: {

    openDir: (state) => {
      let folder = openFolder();
      return {
        ...state,
        mainDir: folder
      }
    }

  }
});
4

0 回答 0