reactjs - setState 并重新渲染?
问题描述
function Posts({ setActivePostId }) {
const [posts, setPosts] = React.useState([])
const [error, setError] = React.useState()
const [status, setStatus] = React.useState('loading')
const fetchPosts = async () => {
try {
console.log('Fetching Posts')
setStatus('foo')
const posts = await axios.get('/api/posts').then((res) => res.data)
setPosts(posts)
setError()
setStatus('success')
} catch (err) {
setError(err)
setStatus('error')
}
}
React.useEffect(() => {
console.log('Component Mounted')
fetchPosts()
}, [])
正在记录的是
Component Mounted!
Fetching Post
组件是否不应该重新渲染,因为状态的先前或初始状态是loading
setStatus foo
?可能进入无限循环?
解决方案
推荐阅读
- python - 与在 opencv python 中创建 RGB 图像的掩码相关的问题
- laravel - 我们如何在 5.7 版本的 laravel 中安装 composer require spatie/laravel-searchable
- ios - 如何在 urlRequest 中将 urlencoded 参数添加到 httpBody
- android - 步进器的自定义按钮设计
- node.js - 在云实例上 Dockerizing 平均堆栈应用程序并在浏览器上访问它
- postgresql - 插入语句,从源表返回列
- ordercloud - Python OrderCloud sdk 扩展属性过滤器不起作用
- c++ - 如何让两个 QGraphicsViews 同时滚动?
- express - 我们如何记录每个 http 请求和响应并将其保存到数据库中
- java - 在 JComboBox 上键入时从数据库中自动过滤 JComboBox 数据