React questions for proper understanding of the topic

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

const formSlice = createSlice({
  name: 'form',
  initialState: {
    name: '',
    dob: '',
  },
  reducers: {
    setName: (state, action) => {
      state.name = action.payload;
    },
    setDob: (state, action) => {
      state.dob = action.payload;
    },
  },
});

export const { setName, setDob } = formSlice.actions;

const store = configureStore({
  reducer: {
    form: formSlice.reducer,
  },
});

export default store;
type here
import React from 'react';
import { useSelector } from 'react-redux';
import ChildComponent from './ChildComponent';
import './ParentComponent.css';

const ParentComponent = () => {
  const name = useSelector((state) => state.form.name);
  const dob = useSelector((state) => state.form.dob);

  return (
    <div className="parent-container">
      <div className="user-info">
        {name && dob && (
          <h1>
            Welcome, {name}! Your date of birth is {dob}.
          </h1>
        )}
      </div>
      <div className="child-container">
        <ChildComponent />
      </div>
    </div>
  );
};

export default ParentComponent;

import React, { useState } from 'react';
import { useDispatch } from 'react-redux';
import { setName, setDob } from '../store';
import './ChildComponent.css';

const ChildComponent = () => {
  const dispatch = useDispatch();
  const [name, setNameInput] = useState('');
  const [dob, setDobInput] = useState('');

  const handleSubmit = (e) => {
    e.preventDefault();
    dispatch(setName(name));
    dispatch(setDob(dob));
  };

  return (
    <div className="child-form">
      <form onSubmit={handleSubmit}>
        <div>
          <label>Name: </label>
          <input
            type="text"
            value={name}
            onChange={(e) => setNameInput(e.target.value)}
          />
        </div>
        <div>
          <label>Date of Birth: </label>
          <input
            type="date"
            value={dob}
            onChange={(e) => setDobInput(e.target.value)}
          />
        </div>
        <button type="submit">Submit</button>
      </form>
    </div>
  );
};

export default ChildComponent;

import React from 'react';
import { Provider } from 'react-redux';
import store from './store';
import ParentComponent from './components/ParentComponent';
import './App.css';

const App = () => {
  return (
    <Provider store={store}>
      <div className="app-container">
        <ParentComponent />
      </div>
    </Provider>
  );
};

export default App;

Initial State: The parent component’s user info div is visible but empty, with a fixed height to maintain the layout.
Submit Form in Child: After submitting the form, the parent component will display “Welcome, [name]! Your date of birth is [dob].” at the top.
State Persistence: The state (messages) will not persist after a refresh or a new load of the application, ensuring the messages are not visible when refreshed or the program is saved newly.