博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Recompose] Add Local State to a Functional Stateless Component using Recompose
阅读量:4984 次
发布时间:2019-06-12

本文共 1684 字,大约阅读时间需要 5 分钟。

Learn how to use the 'withState' and 'withHandlers' higher order components to easily add local state to—and create a reusable local state pattern for—your functional stateless components. No need for classes!

 

withState: 

const Statue = withState('show', 'toggleShow', false)(    ({ status, show, toggleShow }) =>        ( toggleShow((val) => !val)}>            {status}            {show && 
}
));

withState, we create a variable 'show' and a function 'toggleShow', the default value for 'show' is false. Now the variable and function are injected into our stateless component as props.

The function 'toggleShow' can just take a value as arguement or it can also take function as an arguement.

take as function:

onClick={() => toggleShow((val) => !val)}

take as value:

onClick={() => toggleShow(!show)}

 

withHandlers & compose:

To make withState more reuseable, we can use 'withHandler' & 'compose' to create an HoC.

const withToggle = compose(    withState('toggleState', 'toggleShow', false),    withHandlers({        toggle: ({toggleShow}) => (e) => toggleShow((val) => !val),        show: ({toggleShow}) => (e) => toggleShow(true),        hide: ({toggleShow}) => (e) => toggleShow(false)                 }));const Statue = withToggle(    ({ status, toggle, toggleState }) =>        ( toggle(!toggleState)}>            {status}            {toggleState && 
}
));const Tooltip = withToggle(({ show, hide, toggleState, text, children }) => ( {toggleState &&
{ text }
} { children }
));

 

转载于:https://www.cnblogs.com/Answer1215/p/6851499.html

你可能感兴趣的文章
解决WebBrowser控件会导致应用程序占用内存居高不下问题
查看>>
图片贴纸旋转缩放功能的实现
查看>>
科研过程
查看>>
180316
查看>>
HDU 2604
查看>>
.NET Core微服务之基于Exceptionless实现分布式日志记录
查看>>
unity3d IL2CPP for android
查看>>
(一) Go的基本类型
查看>>
PHP程序员的技术成长规划
查看>>
使用moment.js轻松管理日期和时间
查看>>
大白话系列之C#委托与事件讲解(三)
查看>>
php分享十五:php的命令行操作
查看>>
团体程序设计天梯赛-练习集-L1-035. 情人节
查看>>
PAT-树的同构
查看>>
【C和指针】数据
查看>>
EF6+MySql 软件配置环境 EF连接不到mysql问题 实体数据模型向导 选不到mysql
查看>>
《Head first设计模式》学习笔记 – 迭代器模式
查看>>
大家赶快升级到quartus ii 11.0吧,现在文字编辑器又支持中文啦
查看>>
方法该返回接口还是具体类,以及面向接口编程
查看>>
[BTS] Error in Check Transaction: 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))...
查看>>