【发布时间】:2023-03-23 14:47:01
【问题描述】:
我在访问其中一个组件的状态时遇到问题。我有一个组件,用户在其中添加名称和权重,然后提交。然后将它们重定向到主页。我想要发生的是输入的名称显示在主页上。我可以看到状态更新,但我不知道如何访问状态并将名称显示在主页上。任何帮助,将不胜感激。 这是我的主页组件:
const HomePage = () => {
const classes = useStyles();
const name = useSelector(state => state.move.name);
const displayMovementButtons = () => {
if (name) {
return (
<Button
className={classes.movementButtons}
onClick={() => history.push('/movement/:id')}
>
<div className={classes.movementName} >{name}</div>
</Button>
)
};
return <div className={classes.noMovementsMessage} >Click add button to begin</div>
};
return (
<div className={classes.homePageContent} >
<Header title={"Home Page" }/>
<div>{displayMovementButtons()}</div>
<div className={classes.fabDiv}>
<Fab
className={classes.fab}
onClick={() => history.push(`/add`)}>
<AddIcon />
</Fab>
</div>
</div>
);
};
const mapStateToProps = (state) => {
return {
name: state.move.name,
}
};
const withConnect = connect(
mapStateToProps,
);
export default compose(withConnect)(HomePage);
这是我的减速器,我认为问题出在:
const initialState = []
const addMovementReducer = (state = initialState, action) => {
switch (action.type) {
case ADD_MOVEMENT:
return [ ...state, {name: action.name, weight: action.weight} ]
default:
return state;
}
};
export default addMovementReducer;
【问题讨论】:
-
你的“移动”状态是一个数组。所以当你访问它时,你必须使用这样的东西:state.move[0].name
标签: reactjs redux react-redux react-hooks reducers