React如何将Class类组件转换为可在Redux中使用的函数式组件?
React类组件转函数式组件实现方案
转换后的完整代码如下,完全匹配你要求的导出结构,功能和原类组件完全一致:
import { useState, useEffect } from 'react'; import axios from 'axios'; export const PostList = () => { // 对应原类组件的state定义 const [info, setInfo] = useState([]); // 对应原类组件的componentDidMount生命周期,空依赖确保仅首次挂载执行一次 useEffect(() => { axios .get("https://api2.binance.com/api/v3/ticker/24hr") .then((response) => { setInfo(response.data); console.log(response.data); }); }, []); return ( <div> <h2>post!</h2> {info.map((user) => ( <div key={user.symbol}> <h6>{user.priceChange}</h6> </div> ))} </div> ); }
核心替换逻辑说明:
- 使用React内置的
useStateHook替代类组件构造函数中的state声明,无需继承Component类 - 使用
useEffectHook配合空依赖数组,实现和类组件componentDidMount完全相同的执行时机 - 函数组件无需单独声明render方法,直接返回JSX结构即可,渲染逻辑和原类组件完全对齐
内容的提问来源于stack exchange,提问作者user13695929
相关产品推荐
相关产品推荐

