Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >按索引选择数组中的项,同时使用React

按索引选择数组中的项,同时使用React
EN

Stack Overflow用户
提问于 2020-03-15 17:38:21
回答 2查看 5.3K关注 0票数 1

TL/DR:在按索引引用数组中的项目时遇到问题(使用React),可能需要一些指导。

我试图用来自API的数据在我的SPA上创建一个组件。使用React和useEffect创建状态,执行axios调用,然后将response.data.articles设置为state (.articles是用于创建动态内容的对象数组)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 function App() {

  const [storyArray, setStoryArray] = useState();

  useEffect(() => {
    axios.get('http://newsapi.org/v2/everything?domains=wsj.com&apiKey=[redacted_key_value]')
      .then((response) => { 
        // console.log(response);
        setStoryArray(response.data.articles);
      })
      .catch((err) => {
        console.log(err);
      })
  }, [])

  console.log(storyArray)

  return (
    <div className="App">
      <Directory />
      <HeaderStory />
    </div>
  );
}

从这里开始,我的状态是一个对象数组。我的目标是将第一个对象作为道具传递给组件<HeaderStory />,但是每当我尝试用点表示法引用这个数组项时,都会遇到一个未定义的错误。我试图绕过这个问题,是将项设置为变量,然后将变量作为道具传递给组件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const firstStory = storyArray[0];

这也导致了一个未定义的错误。寻找有关引用数组中要传递和用于React的项的建议/帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-15 18:00:51

在第一次呈现时,storyArray将没有值/未定义,useEffect钩子将只在component mount之后执行。

因此,您必须有条件地呈现组件,如果storyArray有值,那么只能呈现HeaderStory

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function App() {
    const [storyArray, setStoryArray] = useState();
    useEffect(() => {
        axios.get('http://newsapi.org/v2/everything?domains=wsj.com&apiKey=[redacted_key_value]')
            .then((response) => {
                // console.log(response);
                setStoryArray(response.data.articles);
            })
            .catch((err) => {
                console.log(err);
            })
    }, [])

    return (
        <div className="App" >
            <Directory />
            {storyArray && <HeaderStory firstStory={storyArray[0]} />}
        </div>
    );

}
票数 2
EN

Stack Overflow用户

发布于 2020-03-15 18:02:44

您应该输入storyArray的默认值。

示例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function App() {

  const [storyArray, setStoryArray] = useState([]); //Init storyArray value

  useEffect(() => {
    axios.get('http://newsapi.org/v2/everything?domains=wsj.com&apiKey=[redacted_key_value]')
      .then((response) => { 
        // console.log(response);
        setStoryArray(response.data.articles);
      })
      .catch((err) => {
        console.log(err);
      })
  }, [])

  console.log(storyArray)

  return (
    <div className="App">
      <Directory />
      <HeaderStory firstStory={storyArray[0] || {}} />
    </div>
  );
}

我将道具设置为firstStory={storyArray \x\\{},因为如果storyArray未定义,则为firstStory支柱传递空对象"{}“。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60699385

复制
相关文章
js获取request中的值_set协议工作原理
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/09/30
7.3K0
Java中的按值传递
这个时候可能会有疑问了,为什么add方法可以修改List数组,但是append和addNum却没有修改传进来的值
俺也想起舞
2019/07/24
1.8K0
详解Java中的值传递
如果大家学过c++,那这块肯定是明白的,但是Java中没有引用传递,在编程语言中,将实参传递给方法的方式有俩种就是我们即将要说的,
秋名山码神
2022/12/13
6760
详解Java中的值传递
Java中的值传递与引用传递
在Java编程中,我们常常听到关于值传递和引用传递的讨论。这两个概念涉及到数据在方法之间如何传递的问题。理解这些概念对于正确编写Java程序至关重要。在本文中,我们将深入探讨什么是值传递和引用传递,以及为什么Java中只有值传递这一问题。
疯狂的KK
2023/09/07
3570
Java中的值传递与引用传递
java中的参数传递-值传递、引用传递
参数是按值而不是按引用传递的说明 Java 应用程序有且仅有的一种参数传递机制,即按值传递。
chenchenchen
2022/11/29
4.7K0
java中的参数传递-值传递、引用传递
JAVA中的值传递和引用传递
先来看一个作为程序员都熟悉的值传递的例子: ... ... //定义了一个改变参数值的函数 public static void changeValue(int x) { x = x *2; } ... ... //调用该函数 int num = 5; System.out.println(num); changeValue(num); System.out.println(num); ... ... 答案显而易见,调用函数changeValue()前后num的值都没有改变。 由此做一个引子,我用图表描绘
小柒2012
2018/04/13
1.7K0
JAVA中的值传递和引用传递
Java中的值传递与引用传递详解
方法调用是编程语言中非常重要的一个特性,在方法调用时,通常需要传递一些参数来完成特定的功能。Java语言提供了两种参数传递的方式:值传递和引用传递。
良月柒
2019/03/20
2.1K0
Java中的值传递与引用传递详解
Python中 传递值 与 传递引用 的区别
对于不可变类型传递值(不会影响原数据) 不可变类型 对于可变类型传递引用(会影响原数据) 不可变类型传递引用 python3不可变类型 Number(数字) St
zhaoolee
2018/04/19
1.9K0
Python中 传递值 与 传递引用 的区别
Java 中是“值传递”还是“引用传递”?
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
业余草
2019/10/25
7720
vim中set的用法
整理了一些vim的set用法: 1.显示隐藏分隔符 set list 可以看到分隔符为制表符。 2.取消显示隐藏制表符 set nolist 3. 显示行号 set nu 4.取消显示行号 set
生信编程日常
2020/04/01
1K0
vim中set的用法
java中的Set集合
概述 Set集合类似于一个罐子,程序可以依次把多个对象“丢进”Set集合,而Set集合通常不能记住元素的添加顺序。实际上Set就是Collection只是行为略有不同(Set不允许包含重复元素)。 Set集合不允许包含相同的元素,如果试图把两个相同元素加入同一个Set集合中,则添加操作失败,add()方法返回false,且新元素不会被加入。
全栈程序员站长
2022/08/11
1.3K0
java中的Set集合
哈希值太大了,还是得用set
https://leetcode-cn.com/problems/intersection-of-two-arrays/
代码随想录
2021/06/17
4960
Python中set的用法
python 的集合类型和 其他语言类似, 是一个无序不重复元素集,我在之前学过的其他的语言好像没有见过这个类型,基本功能包括关系测试和消除重复元素.集合对象还支持union(联合), intersection(交), difference(差)和sysmmetricdifference(对称差集)等数学运算,和我们初中数学学的集合的非常的相似。
py3study
2020/01/09
7890
辨析Java方法参数中的值传递和引用传递
小瓜瓜作为一个Java初学者,今天跟我说她想通过一个Java方法,将外部变量通过参数传递到方法中去,进行逻辑处理,方法执行完毕之后,再对修改过的变量进行判断处理,代码如下所示。
翎野君
2023/05/12
1.5K0
辨析Java方法参数中的值传递和引用传递
Vue中的$set的使用
在我们使用vue进行开发的过程中,可能会遇到一种情况:当生成vue实例后,当再次给数据赋值时,有时候并不会自动更新到视图上去; 当我们去看vue文档的时候,会发现有这么一句话:如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。如下代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>vue $set</title> <script src="https://static.runoob.com/assets/vue/1.0.1
李文杨
2018/03/14
1.5K0
Vue中的$set的使用
答网友问:golang中的slice作为函数参数时是值传递还是引用传递?
今天有网友问通道和切片在赋值给另一个变量或作为函数参数传递的时候是不是引用传递?因为老师在讲解的时候说是指针传递?
Go学堂
2023/08/29
7180
答网友问:golang中的slice作为函数参数时是值传递还是引用传递?
Vue中的set、delete方法在列表渲染中的使用
不知大家是否有过类似的经历,比如说for循环渲染数组或者对象中的数据,渲染完成后,给数组或者对象添加、修改、删除数据后却没有在页面中渲染出来。
砖业洋__
2023/05/06
3.3K0
Vue中的set、delete方法在列表渲染中的使用
java中按值传递和引用传递区别
一种是按值传递:值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。简单来说就是直接复制了一份数据过去,因为是直接复制,所以这种方式在传递时如果数据量非常大的话,运行效率自然就变低了,所以java在传递数据量很小的数据是值传递,比如java中的各种基本类型:int,float,double,boolean等类型的,具体可以自己测试。 代码:
用户7886150
2021/02/26
8930
点击加载更多

相似问题

定义日期格式java 'rd‘st’th‘nd’‘

40

Google Scripts中的序数日期格式(th,rd,st,nd)

10

在日期时间字符串中解析日期的序号指示符( st,nd,rd,th )

46

以"st“、"nd”、"rd“和"th”格式显示日期

30

NSNumberFormatter和'th‘'st’'nd‘'rd’(序数)数字结尾

204
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文