【发布时间】:2021-05-15 07:13:43
【问题描述】:
我有一个像这样的data.json 文件:
"valid": true,
"timestamp": 1582195447,
"base": "USD",
"rates": {
"AED": 3.67338,
"AFN": 77.8079
}
我正在模拟以这种方式从后端接收数据。
import data from './data.json';
function App1(){
const promise = new Promise(
(resolve, reject) =>{
setTimeout(()=>{
console.log('Preparing...');
resolve(data)
}, 2000)
}
)
promise.then(clientData =>{
console.log('Promise resolved', clientData);
})
return(
<div>
<ul>
</ul>
</div>
)
}
我也尝试过这样做:
import data from './data.json';
import React, {useState} from 'react';
function App1(){
const [state, setState] = useState('');
const promise = new Promise(
(resolve, reject) =>{
setTimeout(()=>{
setState(data);
resolve(state);
}, 2000)
}
)
promise.then(clientData =>{
console.log('Promise resolved', clientData);
let newArr = clientData.toA
setState(clientData);
})
return(
<div>
<ul>
{state ? state.map(item => <li key={item.id}>{item.name}</li> ) : 'Loading data...'}
</ul>
</div>
)
}
export default App1;
但这会抛出TypeError: state.map is not a function。
我到底做错了什么?
【问题讨论】:
-
有很多问题:如果你
console.log(data)会发生什么?你从哪里得到名字和身份证?你知道 React 钩子吗?尝试搜索 useEffect() -
@PixAff
{valid: true, timestamp: 1582195447, base: "USD", rates: {…}} base: "USD" rates: {AED: 3.67338, AFN: 77.8079, ALL: 113.23065, AMD: 478.14251, ANG: 1.78845, …} timestamp: 1582195447 valid: true __proto__: Object它是console.log(data)
标签: javascript reactjs react-hooks