【发布时间】:2021-05-26 09:48:58
【问题描述】:
我有一个简单的部分,点击后我想更改 redux 状态
这是我的解决方案,demo.js
import React from "react";
import { useDispatch } from "react-redux";
import actions from "store/actions";
function Demo() {
const dispatch = useDispatch();
const handleCampaigns = () => {
dispatch(actions.sliderActions.setIndex(1)); // open a slider containing slider component
};
return (
<div>
<button
className="sample"
onClick={() => {
dispatch(actions.sliderActions.setName("campaigns_card")); // change the sate of cardName
handleCampaigns();
}}
>
Change redux state
</button>
</div>
);
}
export default Demo;
这是一个包含滑块的滑块组件
import React, { useState } from "react";
import { useSelector} from "react-redux";
function Slider() {
const defaultName = useSelector((state) => state.sliderReducer.name);
const [cardName, setCardName] = useState(defaultName);
console.log("card name", cardName);
return (
<>
<div>Card Name: {cardName}</div>
</>
);
}
export default Slider;
这里是 reducer 操作
const setName = items => {
return {
type: "SET_NAME",
payload: items
}
}
const exports = {
setName
}
export default exports
这里是减速器
const initialState = {
name: "social_card"
};
const sliderReducer = (state = initialState, action) => {
switch (action.type) {
case "SET_NAME":
return {...state, name: action.payload };
default:
return state;
}
};
export default sliderReducer;
现在,当我单击按钮更改控制台中的 redux 状态时,它会显示默认状态
card name... social_card
这里有什么问题?
【问题讨论】:
标签: javascript reactjs redux react-redux react-hooks