Как я могу передать реквизиты/состояние для одного и того же компонента модуля?

#javascript #reactjs

Вопрос:

У меня есть этот компонент, который содержит 2 элемента, таких как код ниже основных элементов и элемент заголовка для макета. Как я могу передать состояние/реквизиты из основного элемента в элемент заголовка? Я хочу задать некоторые условия из основного компонента и передать в заголовок, например, состояние «шаг» и переменную истории.

Пожалуйста, помогите мне прояснить это, большое спасибо.

 import React, { useEffect, useState } from 'react';
import { useSelector } from 'react-redux';
import { useHistory } from 'react-router-dom';
import { AlbumAddIcon } from '../../assets/svg';
import { HeaderTitle } from '../../components/common';
import { doGetListAlbum, RootState, useAppDispatch } from '../../redux';
import './SelectAlbum.scss';

export const SelectAlbum = () => {
  /** States */
  const [step, setStep] = useState<number>(1);

  /** Hooks */
  const history = useHistory();
  const dispatch = useAppDispatch();
  const { dataUser } = useSelector((state: RootState) => state.currentUser);
  const { albums, isLoading } = useSelector((state: RootState) => state.media);

  useEffect(() => {
    if (dataUser amp;amp; dataUser.id) {
      dispatch(doGetListAlbum({ userid: dataUser.id }));
    }
  }, [dataUser]);

  return (
    <>
      <div className="album">
        <div className={`album__wrapper`} onClick={() => history.push('/post/album/create')}>
          <div className="album__item-wrapper">
            <div className="album__item album__item--plus">
              <AlbumAddIcon />
            </div>
            <span>Tạo album</span>
          </div>

          {albums.length
            ? albums.map((item, index) => (
                <div key={index} className="album__item-wrapper">
                  <div
                    className={`album__item ${
                      !item.thumbnailbackground ? 'album__item--normal' : ''
                    }`}
                    style={{
                      backgroundImage: item.thumbnailbackground
                        ? `url(${item.thumbnailbackground})`
                        : 'transparent',
                    }}
                  />
                  <span>{item.albumname}</span>
                </div>
              ))
            : null}
        </div>
      </div>
    </>
  );
};

SelectAlbum.Header = <HeaderTitle typeIcon="close">Chọn album</HeaderTitle>;
 

Комментарии:

1. Не могли бы вы, пожалуйста, добавить упрощенное дерево иерархии?