首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当道具通过两个组件时,我失去了在数组上使用.map的能力。

当道具通过两个组件时,我失去了在数组上使用.map的能力。
EN

Stack Overflow用户
提问于 2018-09-17 20:01:41
回答 4查看 75关注 0票数 0

以下是状态集: 待通过的状态

,我在SearchResults组件中传递它:

SearchResults isRemoval='false‘onAdd={this.addTrack} searchResults={this.state.searchResults}/>

(我知道开头缺少<符号,我不得不省略它,因为它用< not省略来隐藏它)

,然后在SearchResults中,我把道具传递给

代码语言:javascript
运行
AI代码解释
复制
class SearchResults extends React.Component {

    render() {

        return (
            <div className="SearchResults">
                <h2>Results</h2>

                <TrackList isRemoval={this.props.isRemoval} onAdd={this.props.onAdd}
                           tracks={this.props.searchResults}/>
            </div>
        )
    }

}

,然后在Tracklist中,我尝试在数组上使用映射,但是我得到了一个错误,它不能在未定义的.上执行映射。

代码语言:javascript
运行
AI代码解释
复制
class TrackList extends React.Component {


    render() {


        return (<div className="TrackList">

                {

                this.props.tracks.map(track => {
                return <Track  track={track} />
                })
                }
            </div>
        );
    }


}

当我调用第一个组件中的道具时,它是定义的,我可以按需要使用数组,但是当传递到第二个组件时,它会在控制台中显示未定义,我不能使用map。有人知道为什么会这样吗?

EN

回答 4

Stack Overflow用户

发布于 2018-09-18 17:22:12

所以问题是,我把道具从另一个有错误的组件中传递给了同一个组件。我已经忘记了,我是从多个来源传递道具的,这就是为什么我会得到未定义的错误。谢谢大家的帮助。

票数 1
EN

Stack Overflow用户

发布于 2018-09-17 20:14:03

您是否通过外部加载该数据,如果是,您的状态是否有默认值?如果没有将searchResults设置为空数组,那么最初您将没有searchResults的值。

如果不是这样的话,一定有我们在这里缺少的程序的一部分,因为代码看起来很好。

尝试记录每个组件的整个道具的每一步,你会得到一个更好的想法,什么时候丢失。

票数 0
EN

Stack Overflow用户

发布于 2018-09-17 21:05:01

这是您面临的一个有趣的问题,但我建议您首先检查this.props.tracks是否为null || undefined,然后再进行映射。

如果我的假设是正确的,那么当TrackList组件的呈现方法最初运行时,this.props.tracks是未定义的,因此它可能会抛出一个错误。

以下代码可能解决您的问题:

代码语言:javascript
运行
AI代码解释
复制
class TrackList extends React.Component {
    render() {
       return(
          const { tracks } = this.props;
          <div className="TrackList">
            {tracks ? tracks.map(track => {
            return <Track track={track} />;
            }) : null}
          </div>
        );
     }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52378732

复制
相关文章
在 MacOS 上通过 Lima 使用 Docker
目前在 macOS 上如果想使用 docker,那么最直接的就是使用 官方推出的 docker-desktop[1]
我的小碗汤
2023/03/19
2.6K0
在 MacOS 上通过 Lima 使用 Docker
踩坑:在Java中使用 byte 数组作为 Map 的 key
本文将引领我们探索:如何将byte数组作为HashMap中键。HashMap的机制使我们无法直接这样做。让我们研究一下,为何出现此状况,以及针对这种情况,几种可供选择的解决方案。
万猫学社
2023/09/01
5510
踩坑:在Java中使用 byte 数组作为 Map 的 key
map 学习(上)——C++中 map 的使用
该文章介绍了 C++ STL 集合类中的一种数据结构 —— map,以及其用法和示例。
剑影啸清寒
2018/01/02
3.1K0
map 学习(上)——C++中 map 的使用
当elementui的el-dialog组件中包含子组件时,用refs调用子组件时的undefined问题
今天用elementui写了一个el-dialog组件里面包着一个el-transfer穿梭框组件, 代码
李维亮
2021/07/08
1.6K0
使用Map时,需要考虑什么
关于Java中的Map,已有很多文章讲述其较为完整的知识点了,本文不会再谈论这些知识点,而是从实际使用的角度,讲述笔者会考虑什么问题,算是对知识的一个应用,毕竟学了,最后还是要落地到使用中。
草捏子
2020/11/09
1.1K0
当谈论迭代器时,我谈些什么?
迭代器(Iterator)是 Python 以及其他各种编程语言中的一个非常常见且重要,但又充满着神秘感的概念。无论是 Python 的基础内置函数,还是各类高级话题,都处处可见迭代器的身影。
Python猫
2019/07/08
5150
angular 在指令里把组件当服务,并订阅组件的事件
- Module import { ExampleDirective , TabBodyComponent} from './example.component'; @NgModule({ declarations: [ExampleDirective , TabBodyComponent], providers: [ TabBodyComponent ] }) export class ExampleModule { } + AppComponent @Component({ select
treeNewBe
2020/06/16
1.3K0
go: 当我们在使用sync.Map时,发生了什么
sync.Map是我比较喜欢的一个库,用了非常久,今天突发奇想瞧瞧它的实现。又一次被宇宙中第二NB的语言--go 折服了。 这里准备写一篇文章,讨论下当使用sync.Map执行操作的时候,会发生什么。
超级大猪
2020/07/06
9830
别把对象当Map
使用 JavaScript 开发过程中,我们经常会借助对象 Object 来存储数据,从某种意义上,其作用类似 Map,均为 key: value 键值对的方式存储。
奋飛
2022/07/28
3090
「React进阶」我在函数组件中可以随便写 —— 最通俗异步组件原理
接下来的几篇文章将围绕一些‘猎奇’场景,从原理颠覆对 React 的认识。每一个场景下背后都透漏出 React 原理,
用户6835371
2021/10/18
3.8K0
「React进阶」我在函数组件中可以随便写 —— 最通俗异步组件原理
当公司倒闭时,你在干什么?
说出来你可能不信,松哥竟然也经历过公司倒闭的事!最近看到我 GitHub 上开源的 vhr 项目 star 数即将过3k,不禁想起做这个项目时候的事,刚过去一年多,依然历历在目。
江南一点雨
2019/05/07
6630
当公司倒闭时,你在干什么?
当人们在讨论 ChatGPT 时,都在讨论什么
第一,ChatGPT 本质上没有脱离计算机的计算范畴,它只能也终将取代繁重重复、只依靠经验和知识的劳动和工作,它可以取代大部分行业的一部分人,包括程序员,但是无法取代所有程序员,也无法取代那些依靠智慧和灵感的工作,笔者在大厂待过一两年,相信所有大厂都一样,主要产品的代码由于历经多人维护、多次迭代、多向重构,其代码量随随便便几千万行甚至上亿计,这样一个庞然大物能够运行起来,除了优雅的架构设计,还有数不清的胶水,复杂度远超当下 ChatGPT 能够生成的 demo 代码,但是它还是能够有它用武之地,有记不清的 function 代码,它是个好帮手,因此更像是一个无限容量的代码字典。
月小水长
2023/03/02
5310
当人们在讨论 ChatGPT 时,都在讨论什么
detour使用教程_devour怎么使用道具
大家好,又见面了,我是你们的朋友全栈君。 Detours的安装: 下载部分: 1.直接在百度搜”detour”,进对应的网站下载。 2.或以下链接 https://www.microsoft.com/
全栈程序员站长
2022/09/20
1.7K0
detour使用教程_devour怎么使用道具
LeetCode 1460. 通过翻转子数组使两个数组相等
每一步中,你可以选择 arr 的任意 非空子数组 并将它翻转。你可以执行此过程任意次。
freesan44
2021/09/06
4430
LeetCode 1460. 通过翻转子数组使两个数组相等
LeetCode 1460. 通过翻转子数组使两个数组相等
每一步中,你可以选择 arr 的任意 非空子数组 并将它翻转。你可以执行此过程任意次。
freesan44
2021/12/06
3410
trait能力在PHP中的使用
相信大家对trait已经不陌生了,早在5.4时,trait就已经出现在了PHP的新特性中。当然,本身trait也是特性的意思,但这个特性的主要能力就是为了代码的复用。
硬核项目经理
2020/03/12
2K0
当不使用会话状态时禁用它
并不是所有的应用程序或页都需要针对于具体用户的会话状态,您应该对任何不需要会话状态的应用程序或页禁用会话状态。
Java架构师必看
2021/03/22
5180
数组的Map方法详解
链接:https://pan.baidu.com/s/1MVo5i4QpYhDxObvgek04BQ
用户10106350
2022/10/28
5820
在面试中通过工厂模式来证明自己的能力
在面试中,候选人经常会被问到,你在项目里用到过哪些设计模式?对此,你可以按本文给出的步骤,系统地通过工厂模式展示自己在设计思想方面的能力。
用户1153489
2021/03/02
4510
C语言定义数组时使用枚举作为数组的下标
昨天写代码被人告知还有这种写法,很神奇。通常情况下定义数组都是顶一个什么类型的数组然后下标或者脚标就是从0开始++++
用户4645519
2020/09/07
3.5K0

相似问题

当组件也作为道具传递时,我如何在TypeScript (在React中)中强制通过道具?

221

React在使用功能组件时如何传递.map函数的道具

12

当使用redux连接时缺少子组件上的道具时父组件上的类型记录错误

18

当道具通过Array时,我的组件没有呈现

11

如何在传递给组件的不同道具上使用.Map?

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档