【发布时间】:2021-04-14 10:01:10
【问题描述】:
我在 baseReducer.ts 中声明了一个状态:
import {PayloadAction} from '~common/declarations/action';
const initialState = {
test: 'baseReducer'
};
const BaseReducer = (state = initialState, action: PayloadAction<any>): any => {
switch(action.type) {
default:
return state;
}
}
export default BaseReducer;
然后在我的 orderReducer 中:
import {PayloadAction} from '~common/declarations/action';
const initialState = {
test: 'orderReducer'
};
const OrderReducer = (state = initialState, action: PayloadAction<any>): any => {
switch(action.type) {
default:
return state;
}
}
export default OrderReducer ;
在我的 rootReducer 中:
const RootReducer: Reducer = combineReducers({
BaseReducer,
OrderReducer
});
export default RootReducer;
现在在我的功能组件中OrderPage.tsx:
export default function OrderPage() {
const stringText: string = useSelector(state => state.test) // HERE
return (
<React.Fragment>Order Page</React.Fragment>
);
}
这是我的问题:
如何定义从哪个状态获取?理想情况下,我想从OrderReducer 指定状态。
使用 react 类时,我可以执行以下操作:
const mapStateToProps = ({orderReducer}) => {
return {
test: orderReducer.test
}
}
编辑:
我尝试了以下(当然是单独的!),但没有奏效:
const reducer: string = useSelector(state => state.baseReducer);
const reducer: string = useSelector(state => state.orderReducer);
如何在功能组件中实现同样的功能?
【问题讨论】:
-
功能组件 - 不是功能组件。有状态的函数没有任何功能:)
-
我认为 baseReducer 不存在 try const reducer: string = useSelector(state => state.OrderReducer);这是根据你如何组合减速器 const RootReducer: Reducer = combineReducers({ BaseReducer, OrderReducer });
标签: javascript reactjs redux react-hooks