#javascript #reactjs
Вопрос:
Я пытаюсь отобразить новый компонент, нажав кнопку в react js. Я использую функциональные компоненты, и я не могу с этим справиться. Например: нахожусь в компоненте UserManagement и по щелчку кнопки мне нужно отобразить другой компонент с именем управление сотрудниками.
Комментарии:
1. можете ли вы поделиться кодом ? Я думаю, что условный рендеринг-это решение вашей проблемы.
Ответ №1:
Вы можете conditionally
визуализировать свой компонент.
Пример :
EmployeeManagement.js
const EmployeeManagement = () => {
....
return (
<div>
EmployeeManagement
</div>
);
}
UserManagement.js
const UserManagement = () => {
const [hasRender, setRender] = useState(false);
const onShow = React.useCallback(() => setRender(true), []);
return (
<>
<button onClick={onShow}>Show Employee Management</button>
{hasRender amp;amp; <EmployeeManagement />}
</>
)
}
Ответ №2:
используйте видимое состояние и переключите его в onClick:
const [visible, setVisible] = useState(false)
onClick = () => {setVisible(true)}
затем сделайте это так:
{visible amp;amp; <EmployeeManagement/>}
Ответ №3:
Одним из способов сделать это было бы добавить локальное состояние UserManagement
,
содержащее boolean
значение, указывающее, должен ли компонент быть скрыт или показан.
Тогда у вас будет что-то вроде:
function UserManagement() {
const [compIsShown, setCompIsShown] = useState(false);
return (
// Whatever else you're rendering.
<button onClick={() => setCompIsShown(true)}>...</button>
{compIsShown amp;amp; <OtherComp />}
)
}
Произойдет то,что compIsShown
будет инициализировано как ложное,
таким образом, это условие compIsShown amp;amp; <OtherComp />
предотвратит его рендеринг.
Затем, когда вы нажмете кнопку, состояние установится, вызывая повторную визуализацию, за исключением того, что теперь условие будет истинным, поэтому <OtherComp>
оно будет отображаться.
Есть и другие способы сделать это.
в основном зависит от варианта использования.