我想直接在render()
中使用从 API 请求使用中获得的结果。我能做到吗?
const fetchUsersFromApi = () => fetch('https://jsonplaceholder.typicode.com/users?_limit=10')
function* fetchUserWorker() {
const data = yield call(fetchUsersFromApi)
const json = yield call(() => new Promise(res => res(data.json())))
yield put(setUsers(json))
}
不,你不能这样做.考虑到您在组件挂载到函数组件的useEffect
内后触发 API 调用,如果是类组件,则componentDidMount
.
您需要一个状态来保存初始用户值。最初users
将是一个[]
,一旦您进行 API 调用,您的用户可能会成为用户列表[{}, {}]
。现在,如果您看到此处,我们将在一段时间内将值从[]
更改为[{}, {}]
。 反应提供State
就是为了这个目的。每当一个值在一段时间内通过API调用或用户交互发生变化时,它都必须保存在State
中。