React/Redux Receive data from JSON and display/edit them - reactjs

I am trying to help a friend build a React/Redux app where it will get some data from a JSON file and diplay them and be able to edit them.
As we are both new to this and the deadline is pretty close I was wondering if there is anyone who can enlight us on how to do it.
I tried a couple of tutorials like these
Tutorial 1
Tutorial 2
but they weren't too much help as they are either outdated or not what we are looking for.
I apologize if this is not the place to ask this but this project has to be done.
We are either looking someone to help us to it or send us like good examples on how to do it.
Thank you

For fetching data in Redux, you need to write a Redux middleware or use middleware wrapper like redux-saga or redux-observable, etc. I recommend you to use redux-observable. Take a look at this repo for how to build a todo app using React and Redux Observable.
About Redux middleware, I suggest you to read this article.

Related

Are middleware and enhancers necessary in redux necessary?

I am trying to teach myself redux, I spent a bunch of time learning the outdated documentation. RIP. So now I am learning from https://react-redux.js.org/introduction/quick-start .
When configuring my store to start the tutorial, I came across middleware and enhancers. Can someone explain to me exactly what these do in simple terms and if/when they are necessary!
I appreciate any insight more than you guys know! Thankyou. Also, if you have a good tutorial to follow that would be appreciated as well! Short term I am trying to take a user input and send it for display on a separate page.
Those docs are for the React-Redux library, specifically, which is the UI bindings layer to let React components talk to the Redux store. "Middleware" and "enhancers" are a Redux core specific concept, so you won't find any info there.
To actually learn Redux, please read through the newly rewritten official tutorials in the Redux docs, which have been specifically designed to teach you how Redux works and show our recommended practices:
"Redux Essentials" tutorial: teaches "how to use Redux, the right way", by building a real-world app using Redux Toolkit
"Redux Fundamentals" tutorial: teaches "how Redux works, from the bottom up", by showing how to write Redux code by hand and why standard usage patterns exist, and how Redux Toolkit simplifies those patterns
For this question specifically, the "Store" page in the "Fundamentals" tutorial covers what "enhancers" and "middleware" are:
A store enhancer is like a special version of createStore that adds another layer wrapping around the original Redux store. An enhanced store can then change how the store behaves, by supplying its own versions of the store's dispatch, getState, and subscribe functions instead of the originals.
and:
Enhancers are powerful because they can override or replace any of the store's methods: dispatch, getState, and subscribe.
But, much of the time, we only need to customize how dispatch behaves. It would be nice if there was a way to add some customized behavior when dispatch runs.
Redux uses a special kind of addon called middleware to let us customize the dispatch function.

Redux Saga good example

I'm fairly new to Redux Saga, and I'm looking around for any repositories which have been written recently using React and Redux Saga to get a good idea of how an app should look/work. Most of the articles / videos etc appear to be quite old and still using Classes in React. I've done the obvious and looked on the Redux Saga site, however want a fully fledged app as an example.
Does anyone have a link to a repo with a good example of using Redux Saga, with tests etc that is recent?
https://github.com/shinima/battle-city, This is a Nintendo FC's battle city remake in JS by a Chinese developer Shinima, he is also one of the redux-saga's core contributor. All the game logic is heavily leveraging Redux-Saga. The Readme and the source code comment is in Chinese, try to use Google translate if you need to understand some of the code comment. The core business logic in the sagas folder is pretty straightforward to follow though.

React data flow

I am trying to create a blog application and I am a bit confused on the data flow patterns of React.
Should I be trying to use something like Redux to store all of my posts after fetching the posts? Do I use local storage?
How do I then tell a component to render the 'expanded' version of the post? Is it better to re-use a 'post' component or should I just create two seperate components, one for the title and one for the full post?
I know it's two questions in one, but they kind of go together. Thanks in advance
Here's what I've found out about these topics after 6 months into my self-taught React journey.
In my opinion, React built-in features are more than enough to handle state for a small to medium applications (especially if you're working alone as a single developer).
If you turn to Redux right away, you'll have to learn this whole new pattern of handling state in a single immutable store and how to connect your components to it.
Since you will be most likely fetching data asynchronously, you'll need a helper library to work async on Redux: redux-thunk or redux-saga.
So right from the start, you'll have to add:
redux
react-redux
redux-thunk OR redux-saga
That is a lot of documentation to digest. It's perfectly doable, but I couldn't agree more with this quote:
don't solve problems that you don't have
It will be hard to learn those tools, since you've never faced the problems that they solve. Problems that you don't encounter just yet when you're starting to learn React.
Read this (from Redux creator):
https://medium.com/#dan_abramov/you-might-not-need-redux-be46360cf367
So, my recommendation to you:
Learn basic React (with classes):
https://reactjs.org/docs/getting-started.html
Then learn React Hooks (and you can basically forget about class components):
https://reactjs.org/docs/hooks-intro.html
Build your project using only React at first. And see how it goes. Then you can read more about Redux and what it does, and will be able to make a better choice on if you really need it or not.
From what you've told us about your project:
Keep a state for all your posts in a component high in the tree. Maybe inside the <App/> component itself.
Build your functions to fetch and update post data and update the state with the response.
Render how many components as you wish. Displaying full info about the post inside a BlogPostComponent or simplified version inside a BlogPostThumbnailCard with just the thumbnail and the title, for example.
If you want to be ready for the next versions of React and have a shorter code, you should try the hooks and avoid Classes
https://reactjs.org/docs/hooks-intro.html
You can organize your code as you want, but this is more interesting to have scalability with your components and reuse them with different properties

How to snapshot and reject data in react-redux?

This's my first react and redux project. I'm try to learning by doing from main redux repo's examples and i can't find an example for todomvc async in that repo.
Finally i've found an excellence tutorial about redux todomvc async and i'v added this patch to existing redux todomvc app.
If you see my patch you will see i'm try to add snapshot data when interact with remote server and use for reject change data back when got an error response from server.
My questions:
What's the best practice to do for about something like i'm trying?
How i can store snapshot? or
What's best practice to reject change the data?
Thanks for advance.
I got the answer, see in detail http://redux.js.org/docs/recipes/ImplementingUndoHistory.html

Print State of React-Redux Application in Developer Tools

I'm a react-redux beginner and this may seem like a trivial and kind of stupid question but I did not manage to find a satisfactory answer.
I have a react-redux application and receive a kind of complicated data structure from an API, the details don't matter I believe.
I want to know if there is a tool that allows us to write some quick REPL-style commands in the console or in the debugger. I currently have react and redux developer tools and a logger middleware which is perfect for seeing the evolution of the state and logging but I can not manage to go through/inspect the nested data I receive.
Thanks in advance folks,
David
Not sure if it's entirely what you are after, but can't you just keep a ref to the store on the window object? That way you can access it from the console?
var yourStore = createStore(...);
window.store = store;

Resources