反应/功能组件/回调条件渲染/不工作
React / Functional component / Conditional render on callback / Not Working
为什么这不起作用?
import React from 'react';
function Room() {
let check = null;
const ibegyouwork = () => {
check = <button>New button</button>;
}
return (
<div>
<button onClick={ibegyouwork}>Display my button now !!!!</button>
{check}
</div>
);
}
export default Room;
这很好用吗?
从 'react' 导入 React;
function Room() {
let check = null;
return (
<div>
<button>No need for this button because in this case the second button is auto-displayed</button>
{check}
</div>
);
}
export default Room;
基本上我尝试根据条件渲染组件。这是一个非常基本的例子。但是我所拥有的非常相似。如果您想知道为什么我需要更新该函数内的检查变量,因为在我的示例中我有一个回调函数,我在那里收到一个我需要在那个新组件中使用的 ID。
我提供给您的示例基本上是一个按钮,我想在按下这个按钮时显示另一个按钮。
我是 React 的新手,尽管我在过去 2 小时内搜索了解决方案,但我找不到任何解决此问题的方法。
非常感谢任何提示!
当您单击按钮时,您的组件不知道发生了什么变化。您将需要使用 state 来通知 React 需要重新渲染:
import React, {useState} from 'react'
function Room() {
const [check, setCheck] = useState(null);
const ibegyouwork = () => {
setCheck(<button>New button</button>);
}
return (
<div>
<button onClick={ibegyouwork}>Display my button now !!!!</button>
{check}
</div>
);
}
export default Room;
当您调用 setCheck
时,React 基本上决定需要重新渲染,并更新视图。
后者可以正常工作,因为 check
值没有发生应出现在 DOM 上的更改。
如果 check
更改会影响并触发 React 渲染功能,您可能希望为 show/hide 条件使用状态。
import React from 'react';
const Check = () => <button>New button</button>;
function Room() {
const [show, setShow] = React.useState(false);
const ibegyouwork = () => {
setShow(true);
}
return (
<div>
<button onClick={ibegyouwork}>Display my button now !!!!</button>
{show && <Check />}
</div>
);
}
export default Room;
为什么这不起作用?
import React from 'react';
function Room() {
let check = null;
const ibegyouwork = () => {
check = <button>New button</button>;
}
return (
<div>
<button onClick={ibegyouwork}>Display my button now !!!!</button>
{check}
</div>
);
}
export default Room;
这很好用吗?
从 'react' 导入 React;
function Room() {
let check = null;
return (
<div>
<button>No need for this button because in this case the second button is auto-displayed</button>
{check}
</div>
);
}
export default Room;
基本上我尝试根据条件渲染组件。这是一个非常基本的例子。但是我所拥有的非常相似。如果您想知道为什么我需要更新该函数内的检查变量,因为在我的示例中我有一个回调函数,我在那里收到一个我需要在那个新组件中使用的 ID。
我提供给您的示例基本上是一个按钮,我想在按下这个按钮时显示另一个按钮。 我是 React 的新手,尽管我在过去 2 小时内搜索了解决方案,但我找不到任何解决此问题的方法。
非常感谢任何提示!
当您单击按钮时,您的组件不知道发生了什么变化。您将需要使用 state 来通知 React 需要重新渲染:
import React, {useState} from 'react'
function Room() {
const [check, setCheck] = useState(null);
const ibegyouwork = () => {
setCheck(<button>New button</button>);
}
return (
<div>
<button onClick={ibegyouwork}>Display my button now !!!!</button>
{check}
</div>
);
}
export default Room;
当您调用 setCheck
时,React 基本上决定需要重新渲染,并更新视图。
后者可以正常工作,因为 check
值没有发生应出现在 DOM 上的更改。
如果 check
更改会影响并触发 React 渲染功能,您可能希望为 show/hide 条件使用状态。
import React from 'react';
const Check = () => <button>New button</button>;
function Room() {
const [show, setShow] = React.useState(false);
const ibegyouwork = () => {
setShow(true);
}
return (
<div>
<button onClick={ibegyouwork}>Display my button now !!!!</button>
{show && <Check />}
</div>
);
}
export default Room;