react防止Link去除state
时间: 2023-05-28 15:02:41 浏览: 119
react-linkState将事件绑定至state支持Preact和React
React中要防止Link去除state,可以使用以下两种方法:
方法一:使用React Router中的`<NavLink>`组件,它提供了一个`preserve`属性,用于保留`to`属性中的`state`。例如:
```
import { NavLink } from 'react-router-dom';
<NavLink to={{ pathname: '/foo', state: { bar: 'baz' } }} preserve>Go to Foo</NavLink>
```
方法二:手动在页面跳转时,使用`history`对象的`push`或`replace`方法,并将`state`传递给第二个参数。例如:
```
import React, { Component } from 'react';
import { withRouter } from 'react-router-dom';
class MyComponent extends Component {
handleClick = () => {
const { history } = this.props;
history.push({
pathname: '/foo',
state: { bar: 'baz' }
}, { foo: 'bar' });
};
render() {
return <button onClick={this.handleClick}>Go to Foo</button>;
}
}
export default withRouter(MyComponent);
```
以上两种方法都可以在页面跳转时保留`state`,选择哪种方法取决于具体的场景和项目结构。
阅读全文