Comments (1)
I had figured out
So, normally, action —> reducer (i.e, action is dispatched directly to reducer).
From the code that I mentioned above, it originally returned an object
return {
type: "SET_NAME",
payload: name.
}
Then we returned a function
return dispatch => {
setTimeout(() => {
dispatch({
type: "SET_NAME",
payload: name
});
}, 2000);
};
This “return” means we return a fat-arrow function which received a parameter “dispatch”, similar to
return function(dispatch) { setTimeout(….) }
Then, another things came in. Normally, redux only accept “action” with type “object”, it does not accept “action” with type “function”. That’s why we use thunk.
So that, now, the follow becomes: action --> thunk --> reducer
Thunk is a middleware that it check type of the “action” (I believed), to know whether it is type “object” or type “function”. If the type is a “function” it execute the function.
That’s why our setTime function is executed. Then , after the timeOut event occurred, another function “dispatch” is executed.
from reactjs-redux-basics.
Related Issues (8)
- Using redux-promise-middleware but the state does not changed HOT 1
- Getting "TypeError: action is undefined" for mathReducer after setting everything properly
- There's no Redux Code HOT 1
- babel-core missing in package.json HOT 2
- state.result is undefined inside reducer switch
- redux 5 syntax change HOT 1
- What if parameter passed to action is not satisfying the condition to update state?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from reactjs-redux-basics.