【发布时间】:2019-05-31 16:46:07
【问题描述】:
我正在尝试为我的 Tag 组件提供一个 key 道具,但我似乎无法为我的 Tag提供正确的 ID > 组件。
首先,我正在调用这个(单个图像)端点:
componentDidMount() {
fetch(`//derpibooru.org/${this.props.match.params.id}.json`)
.then(res => res.json())
.then(data => this.setState({ singleImage: data }))
}
提供此 json 文件 here(例如)。这是一个示例图像:
然后我想将该 ID 插入到这个 Tag 组件中,以抑制来自 React 的 key prop 警告。
const tagList = this.state.singleImage.tags.split(', ').map( tag => {
return (
<Link to={`/tags/${tag}`}>
<Tag key={???} tag={tag} />
</Link>
)
}
)
但是,问题就在这里。我正在映射[...].singleImage.tags,它们是标签 slugs,但我没有收到 ID。在 API 中,有一个 //derpibooru.org/tags/{some_tag}.json 端点,在这个(标签)端点,我可以使用 tag.id 获取 ID,然后我尝试了另一个提取(在地图内部),如下所示:
const tagList = this.state.singleImage.tags.split(', ').map( tag => {
fetch(`//derpibooru.org/tags/${tag}.json`)
.then(res => res.json())
.then(data => {
return (
<Link to={`/tags/${tag}`}>
<Tag key={data.tag.id} tag={tag} />
</Link>
)
}
}
)
但在这种情况下,map 不会返回。
我觉得这是错误的方法,因为单个图像端点有 tag_ids,但我只是不知道如何将它们放入我的标签组件。
感谢您的帮助。
【问题讨论】:
-
蛞蝓是独一无二的吗?如果是这样,它们可以使用。否则,如果 slug 顺序始终相同,则可以只使用数组中的索引
标签: reactjs