【发布时间】:2020-09-11 19:37:45
【问题描述】:
代码最初应该只是使用一天中的时间 (Date().getHours()) 和一些条件来显示不同的问候语。但是,我试图简化代码以检查状态是否会改变,它给出了上面提到的相同错误。
如果我不包括设置状态的条件,状态会按原样显示。
import React from 'react'
import Cards from './cards'
function Main() {
const [greeting, setGreeting] = React.useState("Hello")
const user = false
if (user) {
setGreeting("Welcome")
} else {
setGreeting("You dont belong here")
}
return (
<main role="main" className="col-md-9 ml-sm-auto col-lg-10 px-md-4">
<div className="d-flex flex-wrap flex-md-nowrap pt-2 mt-2 mb-4">
<h1> {greeting} Random Dude!</h1>
</div>
<Cards />
</main>
)
}
export default Main
我也尝试将其包装在一个函数中,但运气不好,这是有道理的,因为每次呈现代码时,都会再次调用该函数并循环
import React from 'react'
import Cards from './cards'
function Main() {
const [greeting, setGreeting] = React.useState("Hello")
const user = false
function greetingMessage() {
if (user) {
setGreeting("Welcome")
} else {
setGreeting("You dont belong here")
}
return (greeting)
}
return (
<main role="main" className="col-md-9 ml-sm-auto col-lg-10 px-md-4">
<div className="d-flex flex-wrap flex-md-nowrap pt-2 mt-2 mb-4">
<h1> {greetingMessage()} Random Dude!</h1>
</div>
<Cards />
</main>
)
}
export default Main
【问题讨论】:
-
请为此使用codesandbox.io 创建一个small demo 以显示正在发生的问题。
标签: javascript reactjs