42
loading...
This website collects cookies to deliver better user experience
These tools should be beneficial to all Redux users. Whether you're a brand new Redux user setting up your first project, or an experienced user who wants to simplify an existing application, Redux Toolkit can help you make your Redux code better.
npx create-react-app readuxtoolkit_app
npm install --save react-redux @reduxjs/toolkit
npm install --save react-bootstrap
import { configureStore } from '@reduxjs/toolkit';
export const store = configureStore({
reducer: {
},
})
import { store } from "./app/store";
import { Provider } from "react-redux";
ReactDOM.render(
<React.StrictMode>
<Provider store={store}>
<App />
</Provider>
</React.StrictMode>,
document.getElementById("root")
);
import { createSlice } from '@reduxjs/toolkit'
const initialStateValues = {
coin: 0,
}
export const counterSlice = createSlice({
name: 'counter',
initialState: initialStateValues,
reducers: {
increment: (state) => {
state.coin += 1
},
decrement: (state) => {
state.coin -= 1
},
incrementByAmount: (state, action) => {
state.coin += action.payload
},
decrementByAmount: (state, action) => {
state.coin -=action.payload
}
},
})
// Action creators are generated for each case reducer function
export const { increment, decrement, incrementByAmount, decrementByAmount } = counterSlice.actions
export default counterSlice.reducer
import { configureStore } from '@reduxjs/toolkit';
import counterReducer from './../features/counter/counterSlice';
export const store = configureStore({
reducer: {
counter: counterReducer
},
})
import { configureStore } from "@reduxjs/toolkit";
import counterReducer1 from "./../features/counter/counterSlice1";
import counterReducer2 from "./../features/counter/counterSlice2";
import { combineReducers } from "redux";
const reducer = combineReducers({
// put all your reducers here!
counterReducer1,
counterReducer2,
});
export const store = configureStore({
reducer,
});
const dispatch = useDispatch();
import { useDispatch } from "react-redux";
import {
increment,
decrement,
incrementByAmount,
decrementByAmount,
} from "./counterSlice";
import Button from 'react-bootstrap/Button';
import 'bootstrap/dist/css/bootstrap.min.css';
const Counter = () => {
const dispatch = useDispatch();
return (
<div>
<hr />
<Button
aria-label="Increment value"
onClick={() => {
dispatch(increment());
}}
variant="success"
className="mx-2"
>
Increase
</Button>
<Button
className="button"
aria-label="Decrement value"
onClick={() => {
dispatch(decrement());
}}
variant="danger"
className="mx-2"
>
Decrease
</Button>
<Button
className="button"
aria-label="Decrement value"
onClick={() => {
dispatch(incrementByAmount(10));
}}
variant="success"
className="mx-2"
>
IncrementBy 10
</Button>
<Button
className="button"
aria-label="Decrement value"
onClick={() => {
dispatch(decrementByAmount(10));
}}
variant="danger"
className="mx-2"
>
DecrementBy 10
</Button>
</div>
);
};
export default Counter;
import {useSelector} from 'react-redux';
const Coin = () => {
const {coin} = useSelector((state)=>state.counter);
return (
<div style={{paddingTop: '200px'}}>
<b><big className="value">Coins: {coin}</big></b>
</div>
);
};
export default Coin;
npm start