React使用hook(useState)的一些坑

import someFnComponent from './someFnComponent'

const [fnComponent, setFnComponent] = useState();

setFnComponent(someFnComponent )

//此时引入的函数组件props会失效。当引用时组件的props一直会是undefined。


const myFnCom = () => {
    return (
        <someFnComponent />
    )
} 

找了一些setState源码流程,在流程中有一些操作传入参数的函数。不过没找到细节部分的代码。 //  后续更新。

//更新~~找到问题所在了。

const HooksDispatcherOnMount: Dispatcher = {
/** 省略其它Hooks **/
  useState: mountState,
};

// 所以调用useState()返回的就是HooksDispatcherOnMount.useState(),也就是mountState()

function mountState<S>(
  initialState: (() => S) | S,
): [S, Dispatch<BasicStateAction<S>>] {
    // 访问Hook链表的下一个节点,获取到新的Hook对象
  const hook = mountWorkInProgressHook();
//如果入参是function则会调用,但是不提供参数
  if (typeof initialState === 'function') {
    initialState = initialState();
  }
// 进行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Manggoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值