前提
TypeScript初心者です。
Reactはちょっとだけ経験アリ
JSXに文字列をネストさせてコンポーネントに渡す処理を作りました。
JavaScript:App.tsx
1import TextDialog from './components/textdialog'; 2 3function App() { 4 return ( 5 <div className="App"> 6 <TextDialog> // ここでネストさせて渡す 7 Hello World!<br/> 8 I am Web Developer. 9 </TextDialog> 10 </div> 11 ); 12} 13 14export default App; 15
コンポーネント側
JavaScript:TextDialog.tsx
1export default function TextDialog({ children }: { children: React.ReactNode }) : JSX.Element { 2 3 console.log(children); // ネストさせたテキストがオブジェクトで表示される 4 5 return ( 6 <div className="text-dialog"> 7 {children} 8 </div> 9 ) 10}
実現したいこと
TextDialog.tsx
のchildren
の中身をfor in
で取得したい
発生している問題
JavaScript:TextDialog.tsx
1export default function TextDialog({ children }: { children: React.ReactNode }) : JSX.Element { 2 3 console.log(children); 4 console.log(typeof children); 5 6 // ここでエラー 7 for (const key in children) { 8 if (Object.prototype.hasOwnProperty.call(children, key)) { 9 const element = children[key]; 10 11 } 12 } 13 14 return ( 15 <div className="text-dialog"> 16 {children} 17 </div> 18 ) 19}
該当のソースコード
JavaScript
1 // ここでエラー 2 for (const key in children) { 3 if (Object.prototype.hasOwnProperty.call(children, key)) { 4 const element = children[key]; 5 6 } 7 }
試したこと
children
を{}
で囲ってみたり
補足情報(FW/ツールのバージョンなど)
- React(18.2.0)
- TypeScript(4.7.0)

回答2件
あなたの回答
tips
プレビュー