2017-02-23 55 views
0

我有一個簡單的列表,如果字符串長度超過0,我想顯示或隱藏某些文本,但總是得到相同的輸出(「C」),即使在更新後也不會更改道具和三元運算符

<li>{props.sen}{props.sen.length > 0 ? "" : "C"}</li> 
    <li>{props.sax}{props.sax.length > 0 ? "" : "C"}</li> 
    <li>{props.sac}{props.sac.length > 0 ? "" : "C"}</li> 

sensaxsac初始狀態是""但即使更新後,其中狀態更新爲「價值」,C仍然存在。

+0

您正在更新錯誤的數據。你正在閱讀道具,但你提到更新'國家'。請張貼更多相關的代碼。 –

+0

我們需要你所有的代碼來幫助你。 – Andrew

+0

對不起,沒有回答...解決方案是{(props.sac.length == 0?「」:「C」)}當我添加括號開始工作 – OunknownO

回答

1

我想你忘記了括號,試試這個:

<li>{props.sen}{(props.sen.length > 0 ? "" : "C")}</li> 
<li>{props.sax}{(props.sax.length > 0 ? "" : "C")}</li> 
<li>{props.sac}{(props.sac.length > 0 ? "" : "C")}</li> 
+0

哦,對不起,您已經回答了您的問題 – Robsonsjre

+0

添加括號*與問題無關。 –

0

解決方案是消除「>」和加入「==」來代替它。這是正確的代碼

<li>{props.sen}{(props.sen.length == 0 ? "" : "C")}</li> 
<li>{props.sax}{(props.sax.length == 0 ? "" : "C")}</li> 
<li>{props.sac}{(props.sac.length == 0 ? "" : "C")}</li>