今日问题总结~

83 阅读1分钟

react中给元素绑定点击事件,必须要用箭头函数的形式,否则该事件会自执行

<p onClick={() => goDetail(index)} title={item.title}>{item.title}</p>

useHistory

react中,如果一个组件没有直接被路由管理(常见于嵌套组件),那么在这个组件中使用props.history.push是无效的。因为没有直接被路由管理,所以获取不到history,所以会报错咯~ 解决方案有很多,比如用withRouter进行包裹。但是我觉得这种好麻烦 get到一个新方法,就是用useHistory。但是useHistory对react版本有要求,好像得16+

import { useHistory } from "react-router-dom";      // 先引入
const history = useHistory();       // 再定义
history.push(`/announce`);      // 使用~

react解析富文本-dangerouslySetInnerHTML

<p 
    dangerouslySetInnerHTML={{ __html: detail ? detail.content : '' }} 
/>

js-cookie

1、创建
//创建简单的cookie
Cookies.set(键名, 键值);

//创建有效期为7天的cookie
Cookies.set(键名, 键值, { expires: 7 });

//为当前页创建有效期7天的cookie
Cookies.set(键名, 键值, { expires: 7, path: '' });
2、取值
Cookies.get(键名); 
//获取所有cookie
Cookies.get(); 
3、删除

Cookies.remove(键名);

4、允许传入json格式的数据

假如通过set方法,传入Array或对象,而不是简单的string,那么js-cookie会将你传入的数据用JSON.stringify转换为string保存。如果你用getJSON方法获取cookie,那么js-cookie会用JSON.parse解析string并返回

Cookies.set('name', { foo: 'bar' });
Cookies.get('name');    // => '{"foo":"bar"}'
Cookies.get();      // => { name: '{"foo":"bar"}' }
Cookies.getJSON('name');         // => { foo: 'bar' }
Cookies.getJSON();      // => { name: { foo: 'bar' } }