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' } }