在Redux中使用useSelector和useDispatch
Posted 前端精髓
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Redux中使用useSelector和useDispatch相关的知识,希望对你有一定的参考价值。
如何在redux中使用useSelector和useDispacth来获取数据。我们可以使用mapStateToProps的替代方法useSelector。我们还可以使用mapDispatchToProps的替代方法useuseppatch。
之前使用mapStateToProps和mapDispatchToProps的示例。
import update_person from './store/actions/personAction';
import { connect } from 'react-redux';
function App(props) {
return (
<div className="App">
<h1>Redux Tutorial</h1>
Person Name: {props.person.name}
<button onClick={props.updatePerson}>Update Person</button>
</div>
);
}
const mapStateToProps = state => {
return {
person: state.person
};
}
const mapDispatchToProps = dispatch => {
return {
updatePerson: () => {dispatch(update_person)}
}
}
export default connect(mapStateToProps,mapDispatchToProps)(App);
看起来,要同时使用mapStateToProps和mapDispatchToProps两者,我们需要做很多事情。但是,如果您使用useSelector和useDispatch,那么它将减少您的代码,并且看起来也更容易阅读。
现在使用useSelector和useDispatch的示例
import './App.css';
import fetch_user from './store/actions/userAction';
import { connect, useSelector, useDispatch} from 'react-redux';
import HookCounterSix from './components/HookCounterSix';
function App(props) {
const users = useSelector(state => state.users);
const dispatch = useDispatch();
return (
<div className="App">
<h1>Redux Tutorial</h1>
Users: <button onClick={()=>dispatch(fetch_user)}>Fetch Users</button>
{
users.length === 0 ? <p>No user found!</p> :
users.map(user => <p key={user.id}>{user.first_name}</p>)
}
<HookCounterSix/>
</div>
);
}
export default App;
我们看到使用useSelector和useDispatch而不是使用mapStateToProps和mapDispatchToProps的不同之处。
以上是关于在Redux中使用useSelector和useDispatch的主要内容,如果未能解决你的问题,请参考以下文章
在Redux中使用useSelector和useDispatch
关于使用 Redux 工具包的 `useSelector` 和 `createSelector` 的混淆