我使用下面的代码来编写reactJS和typescript.在执行命令时,我发现下面的错误.

我还添加了进口声明

有没有办法解决这个问题?

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需要一个keyprops (1)来识别元素并优化内容.

在jsx中添加key={topic.id}:

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>
);

Typescript相关问答推荐

类型脚本中的Gnomeshell 扩展.如何导入.ts文件

angular 17独立使用多个组件(例如两个组件)

如何为ViewContainerRef加载的Angular组件实现CanDeactivate保护?

防止获取发出不需要的请求

接口的额外属性作为同一接口的方法的参数类型'

Redux—Toolkit查询仅在不为空的情况下添加参数

react 路由6操作未订阅从react 挂钩表单提交+也不使用RTK查询Mutations

如何将CSV/TXT文件导入到服务中?

如何调整对象 struct 复杂的脚本函数的泛型类型?

用于验证字符串变量的接口成员

在HighChats列时间序列图中,十字准线未按预期工作

下载量怎么会超过下载量?

如何将类似数组的对象(字符串::匹配结果)转换为类型脚本中的数组?

如何解决&Quot;类型不可分配给TypeScrip IF语句中的类型&Quot;?

为什么我的函数arg得到类型为Never?

对于VUE3,错误XX不存在于从不存在的类型上意味着什么?

使用&reaction测试库&如何使用提供程序包装我的所有测试组件

在Vite中将SVG导入为ReactComponent-不明确的间接导出:ReactComponent

为什么 Typescript 无法正确推断数组元素的类型?

对象只能使用 Typescript 中另一个对象的键