自定义React Hooks(记录先前状态):usePrevious

usePrevious Hoos可以用来存储props或以前的状态。

  1.  首先,创建一个接受值的Hook。
  2.  然后,我们使用useRef Hook为该值创建一个ref。
  3.  最后,使用useEffect记住最新值。

代码示例:

const usePrevious = value => {
const ref = React.useEffect();
React.useEffect(()=> {
ref.current = value;
});
return ref.current;
}

使用示例:

const MoneyCount = () => {
const [value, setValue] = React.useState(0);
const lastValue = usePrevious(value);
return (
<div>
<p>Current: {value} - Previous:{lastValue}</p>
<button onClick={()=>setValue(value+1)}> Increment Money</button>
</div>
);
};
ReactDOM.render(<MoneyCount />, document.getElementById("root"));

版权声明:著作权归作者所有。

相关推荐

Spring Security自定义验证失败处理器AuthenticationFailureHandler

Spring Security的AuthenticationManager用来处理验证的请求,处理的结果分两种:验证成功:结果由AuthenticationSuccessHandler处理验证失败:结果由交给AuthenticationFailureHandler处理。在Spring Security内置了几种验证失败处理器:DelegatingAuthenticationFailureHandl

React Apollo入门

入门Apollo Client最简单的方法是使用Apollo Boost,它会给客户端配置推荐的设置。使用Apollo Boost创建app的内容包括缓存,本地状态管理以及错误处理。安装首先安装以下的软件包:npm install apollo-boost react-apollo graphql-tag graphq

Python定义全局变量

Python使用global指令来声明一个全局变量。示例globvar = 0 def set_globvar_to_one():     global globvar    # 在使用全局变量前,必须先声明为global    &nbs

html给文本输入框添加自定义的清除按钮

使用HTML 5,如果对清除按钮的样式不介意的话,可以使用search类型的输入框,它会提供一个默认的清除按钮<input type="search" placeholder="搜索" /> 如果想自定义清除按钮,则需要自己实现,这里使用jquery给出一个实现的方案:<!DOCTYPE h

Android保存及恢复Activity的状态

Android保存Activity状态有两种方式:activity保存以及持久化保存。这里主要介绍activity保存。保存Activity状态基于Activity保存状态需要重写onSaveInstanceState(Bundle savedInstanceState)方法。示例:@Override public void onSaveInstanceState(B