React js 的 JSX 中的 Javascript 不起作用
Javasript inside JSX of react js does not working
从 'react' 导入 React,{useState};
导入'./App.css';
function App() {
const [flag, setflag] = useState(0);
const startCountdown = () => {
setflag(1);
};
return (
<>
<button onClick={startCountdown}>Start countdown</button>
{(() => {
if (flag===1){
console.log("INN");
<h1>Count Down Started</>
}
})}
</>
);
}
export default App;
每当用户点击按钮时,包含“倒计时开始”的 h1 标签应该显示在屏幕上。
但是,这并没有发生。
这样试试:
return (
<>
<button onClick={startCountdown}>Start countdown</button>
{flag === 1 && (
<h1>Count Down Started</h1>
)}
</>
)
您只需添加一个 conditional
即可。
沙盒link:https://codesandbox.io/s/react-hooks-counter-demo-forked-2qc1d?file=/src/index.js
import React, { useState } from "react";
import ReactDOM from "react-dom";
import "./styles.css";
function App() {
const [flag, setflag] = useState(0);
const startCountdown = () => {
setflag(1);
};
return (
<>
<button onClick={startCountdown}>Start countdown</button>
{flag === 1 && <h1>Count Down Started</h1>}
</>
);
}
export default App;
您的函数从来都不是真正的 运行,它只是被定义了。使用括号 ()
执行它。此外,由于您有花括号,因此您必须在箭头函数内使用 return
关键字。
return (
<>
<button onClick={startCountdown}>Start countdown</button>
{(() => {
if (flag===1){
console.log("INN");
return <h1>Count Down Started</h1>
}
})()}
</>
);
您可以使用条件渲染。
function App() {
const [flag, setflag] = useState(0);
const startCountdown = () => {
setflag(1);
};
return (
<>
<button onClick={startCountdown}>Start countdown</button>
{flag === 1 && <h1>Count Down Started</>}
</>
);
}
export default App;
{ flag === 1 ? <h1>Count Down Started</h1> : undefined}
从 'react' 导入 React,{useState}; 导入'./App.css';
function App() {
const [flag, setflag] = useState(0);
const startCountdown = () => {
setflag(1);
};
return (
<>
<button onClick={startCountdown}>Start countdown</button>
{(() => {
if (flag===1){
console.log("INN");
<h1>Count Down Started</>
}
})}
</>
);
}
export default App;
每当用户点击按钮时,包含“倒计时开始”的 h1 标签应该显示在屏幕上。 但是,这并没有发生。
这样试试:
return (
<>
<button onClick={startCountdown}>Start countdown</button>
{flag === 1 && (
<h1>Count Down Started</h1>
)}
</>
)
您只需添加一个 conditional
即可。
沙盒link:https://codesandbox.io/s/react-hooks-counter-demo-forked-2qc1d?file=/src/index.js
import React, { useState } from "react";
import ReactDOM from "react-dom";
import "./styles.css";
function App() {
const [flag, setflag] = useState(0);
const startCountdown = () => {
setflag(1);
};
return (
<>
<button onClick={startCountdown}>Start countdown</button>
{flag === 1 && <h1>Count Down Started</h1>}
</>
);
}
export default App;
您的函数从来都不是真正的 运行,它只是被定义了。使用括号 ()
执行它。此外,由于您有花括号,因此您必须在箭头函数内使用 return
关键字。
return (
<>
<button onClick={startCountdown}>Start countdown</button>
{(() => {
if (flag===1){
console.log("INN");
return <h1>Count Down Started</h1>
}
})()}
</>
);
您可以使用条件渲染。
function App() {
const [flag, setflag] = useState(0);
const startCountdown = () => {
setflag(1);
};
return (
<>
<button onClick={startCountdown}>Start countdown</button>
{flag === 1 && <h1>Count Down Started</>}
</>
);
}
export default App;
{ flag === 1 ? <h1>Count Down Started</h1> : undefined}