reactjs - 在反应中将 API 数据存储到状态变量
问题描述
import React,{useState, useEffect} from 'react';
import {useSelector, useDispatch} from "react-redux";
import * as actions from '../../../../core/actions';
function Earnings(props) {
//state hooks
// setEarnings will be use when we get data from API.
const [earnings,setEarnings] = useState([]);
const dispatch = useDispatch();
//reducers.
// initail state is empty object {}
const earningsForSessionState = useSelector((state) => state.getEarningsReducer);
useEffect(() => {
console.log('111111111111 first use effect is running');
let data = {
"transaction_type":"multiple"
}
// calling API for getting data as an array.
dispatch(actions.getEarnings(data));
}, []);
useEffect(()=>{
console.log('2222222222 second use effect is running');
console.log('', earningsForSessionState.payload?.success?.data?.data);
//setEarnings(earningsForSessionState.payload?.success?.data?.data);
}, [earningsForSessionState?.payload]);
}
我能够在从 API 获得的第二个 useEffect 中打印数据。
但我想将该数据存储到我的状态变量earnings
中。如您所见,我setEarnings
在第二个 useEffect 函数中注释了函数。但是如果我取消注释该行,那么我没有得到任何数据。我认为我以错误的方式使用 useEffect。setEarnings
请告诉我,如果在第二个 useEffect 中取消注释功能,为什么我无法获取数据。
我想将 API 数据存储到我的状态变量earnings
中。我该怎么做呢 ?
解决方案
推荐阅读
- c++ - 复制指针,更改副本指向的内容而不更改原始内容?
- r - 从文件名中包含单引号的文件路径中读取
- mapbox - Mapbox gl:鼠标悬停在图层上时更改光标指针样式
- c - 我需要随机排序堆栈的元素
- mysql - 如何在裸 Windows7 安装上查看行终止符 ona .txt
- c# - 如何使用 c# lambda 函数使用 AWSSDK.Dynamodbv2 使用无服务器框架将项目放入 dynamodb
- python - 如何继续读取 csv 文件?
- c - C中的单词搜索程序
- angularjs - 未传递到指令的 Scope 属性的对象数组
- django - Django如何获取不在many2many领域的用户?