[英]How to set initial useState value in React based on props
我目前將我的active
state 設置為 0:
const [active, setActive] = useState(0);
但我想知道如果我的組件道具之一: isFilterMode
為真,如何將初始值設置為null
? 那么最初的 state 是基於道具的“動態”嗎?
像這樣試試
const [active, setActive] = useState(props.isFilterMode ? null : 0);
或使用回調 function ( lazy initialization
)
const [active, setActive] = useState(() => props.isFilterMode ? null : 0);
const Component = ({ isFilterMode }) => {
const [active, setActive] = useState(() => isFilterMode ? null : 0);
...
}
您可以定義一個帶有返回值的表達式作為 useState 的參數。 使用像props.isFilterMode? null: 0
props.isFilterMode? null: 0
如果props.isFilterMode
的值為 true,則返回null
,否則返回 0。 因此,在useState
中,您將擁有:
const [active, setActive] = useState(props.isFilterMode ? null : 0);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.