【发布时间】:2021-10-09 09:16:53
【问题描述】:
我在 React 中有条件地显示 JSX 时遇到问题。
我想在用户未登录时显示登录表单,并在用户登录时显示 h1。 但是,当我登录时,登录表单仍然存在并且 h1 没有出现。为什么会这样?
■App.js
import React from 'react';
import Login from './Views/Login/Login';
import { useSelector } from 'react-redux';
function App() {
const isLoggedIn = useSelector((state) => {
state.auth.loggedIn;
});
return (
<div>
<h1>TEST</h1>
{isLoggedIn && <h1>LoggedIn</h1>}
{!isLoggedIn && <Login />}
</div>
);
}
export default App;
■index.js(存储)
import { configureStore } from '@reduxjs/toolkit';
import authReducer from './auth-slice';
const store = configureStore({
reducer: { auth: authReducer},
});
export default store;
■auth-slice.js
import { createSlice } from '@reduxjs/toolkit';
const authSlice = createSlice({
name: 'auth',
initialState: { admin: false, loggedIn: false },
reducers: {
login(state, action) {
const { name, password } = action.payload;
state.loggedIn = true;
state.admin = true;
console.log(name, password, state.loggedIn);
},
},
});
export default authSlice.reducer;
export const authActions = authSlice.actions;
【问题讨论】:
标签: reactjs redux react-redux jsx redux-toolkit