有效的輸入方法:條件渲染控制指南
P粉550257856
2023-08-15 18:18:12
<p>我正在嘗試輸入條件渲染,但是它報錯了:<code>Element implicitly has an 'any' type because expression of type 'number' can't be used to index type 'types'. No index signature' can't be used to index type 'types'. No index signature with a parameter of type 'number' was found on type 'types'.</code> 當所有內容都是"any"時,渲染是有效的。 </p>
<pre class="brush:php;toolbar:false;">interface types {
'0': JSX.Element;
'1': JSX.Element;
'2': JSX.Element;
}
export default function Economy(props: any) {
const [step, setStep] = useState(0)
const render = () => {
const component: types = {
'0': <Home />,
'1': <Create />,
'2': <Detail />,
}
return component[step]
}
return (
{render()}
)</pre>
<p>有人能幫我理解如何為這個條件渲染添加類型嗎? </p>
<p>我需要理解如何為這個條件渲染添加類型</p>
當對一個物件進行索引時,你需要使用
keyof
運算子。 來自 TypeScript 文件:您的
step
有number
類型,不能用於索引types
,因為types
只有1,2, 3
。所以您可以手動將step
設定為keyof types
:由於
step
是一個數字,您還需要鍵: