【发布时间】:2020-11-19 11:05:22
【问题描述】:
我有一个没有 React 但使用 Redux 的功能组件,如下所示:
export const isAuthenticated = () => ({user}) => {
console.log("user : ", user);
return true;
};
const mapStateToProps = (state) => {
return {
user: state.auth.userInfo
}
}
export default connect(mapStateToProps)(isAuthenticated as any)
为了使用上述功能,我使用如下:
{isAuthenticated() && (
<li className="nav-item">
<NavLink
className="nav-link"
activeStyle={{
color: "#1ebba3"
}}
to="/dashboard"
onClick={(e) => { if (this.menu.classList.contains("show")) { this.inputElement.click() } }}
>
Dashboard
</NavLink>
</li>
)}
它不起作用。它甚至没有进入那个 isAuthenticated 函数,因为我没有看到console.log("user : ", user); 的任何输出。它应该输出类似user: undefined 的内容,但它甚至不输出。
如果我改变了
export const isAuthenticated = () => ({user}) => {
到
export const isAuthenticated = ({user}) => {
那么问题是我不能用isAuthenticated() 调用它,并且可能是从函数调用传递的参数和从 Redux 检索的状态之间的重复。
如果我想继续使用“isAuthenticated()”来调用该方法,而不传递任何参数,但让 Redux 将用户状态传递给该函数,我该如何解决?
【问题讨论】:
标签: reactjs typescript redux react-redux react-functional-component