React Reduxjs 工具包未使用 Typescript 读取 useSelector 中的状态。是向我显示 loggedIn 不是布尔值的错误

React Reduxjs toolkit is not reading state in useSelector, using Typescript. Is shows me an error that loggedIn is not a boolean

我正在将 store.tsx 文件中的状态传递给组件,它向我显示错误。 const loggedIn 中的错误是 state.loggedIn.loggedIn 不是布尔值。 下面是组件

的代码
  import React from "react";
import { StyledNavBar, StyledNavButton } from "./styles";
import { useSelector } from "react-redux";

export const NavBar = () => {
  interface IisLoggedInProp {
    loggedIn: boolean;
  }

  **const loggedIn = useSelector(
    (state: IisLoggedInProp) => state.loggedIn.loggedIn
  );**

  return (
    <StyledNavBar>
      <StyledNavButton>Dodaj Post</StyledNavButton>
      {loggedIn && <StyledNavButton>Dodaj Komentarz</StyledNavButton>}
      <StyledNavButton>Toggluj kolory</StyledNavButton>
      <StyledNavButton>Wyślij wiadomość</StyledNavButton>
    </StyledNavBar>
  );
};

这就是 store.js 的样子 我已经从提供的代码中取消了 logOutSlice,以免造成混淆。

 import { createSlice, configureStore } from "@reduxjs/toolkit";

const initialLoggedInState = {
  loggedIn: false,
};

const loggedInSlice = createSlice({
  name: "loggedIn",
  initialState: initialLoggedInState,
  reducers: {
    withLogIn(state) {
      state.loggedIn = true;
    },
    withoutLogIn(state) {
      state.loggedIn = false;
    },
  },
});

export const loggedInActions = loggedInSlice.actions;   

export const store = configureStore({
  reducer: { loggedIn: loggedInSlice.reducer, logOut: logOutSlice.reducer },
});

useSelector 始终从您的根状态读取,因此您必须在此处使用 RootState 类型而不是 IisLoggedInProp

状态类型是RootState

这样做

const loggedIn = useSelector(
    (state: RootState) => state.loggedIn.loggedIn
  );