ReactJSとTypeScriptに以下のコードを使用しています。コマンドの実行中にエラーが発生します。
Importステートメントimport 'bootstrap/dist/css/bootstrap.min.css'も追加しました。 Index.tsxで。
この問題を修正する方法はありますか?
npm start
client/src/Results.tsx
(32,21): Missing "key" prop for element.
ファイルは以下の「Results.tsx」です
import * as React from 'react';
class Results extends React.Component<{}, any> {
constructor(props: any) {
super(props);
this.state = {
topics: [],
isLoading: false
};
}
componentDidMount() {
this.setState({isLoading: true});
fetch('http://localhost:8080/topics')
.then(response => response.json())
.then(data => this.setState({topics: data, isLoading: false}));
}
render() {
const {topics, isLoading} = this.state;
if (isLoading) {
return <p>Loading...</p>;
}
return (
<div>
<h2>Results List</h2>
{topics.map((topic: any) =>
<div className="panel panel-default">
<div className="panel-heading" key={topic.id}>{topic.name}</div>
<div className="panel-body" key={topic.id}>{topic.description}</div>
</div>
)}
</div>
);
}
}
export default Results;
要素の配列をレンダリングしているので、Reactは要素を識別して最適化するためにkey
prop( 1 )が必要です。
key={topic.id}
をjsxに追加します。
return (
<div>
<h2>Results List</h2>
{topics.map((topic: any) =>
<div className="panel panel-default" key={topic.id}>
<div className="panel-heading">{topic.name}</div>
<div className="panel-body">{topic.description}</div>
</div>
)}
</div>
);