Code Monkey home page Code Monkey logo

Comments (7)

KenStipek avatar KenStipek commented on July 24, 2024

@minusoneman couldn't you use json-api-normalizer to do this?

from redux-object.

minusoneman avatar minusoneman commented on July 24, 2024

@KenStipek I'd like to update the store based on the modified object in step 2 (not the server provided JSONAPI response in step 4), since I'd like to support offline use.

from redux-object.

yury-dymov avatar yury-dymov commented on July 24, 2024

@minusoneman sounds like a common redux task: create a reducer and action, which will do whatever you need

from redux-object.

minusoneman avatar minusoneman commented on July 24, 2024

@yury-dymov that's true, and also my approach right now. But things get a little complicated if I want to Update or Delete an object. In my reducer, if I want to delete an object, I'll:

  1. Delete the object from store (simple)
  2. Find all relationships to said object and remove (yuk!)

Create an object (client-side)

  1. Create object manually in store
  2. Create all relationships

I'm wondering if there could be a 'generic' solution to this, not unlike this approach: https://github.com/giadc/giadc-redux-json-api#manipulating-entities

from redux-object.

yury-dymov avatar yury-dymov commented on July 24, 2024

Sorry for the delayed response.

Well, I understand, what you are talking about. redux-object itself is about reading data from the store, we don't mutate anything here, so I am closing this :)

Regarding mentioned case, I find this problem in general quite hard to solve but we can brainstorm for the particular use-cases. Feel free to ping me via [email protected]

from redux-object.

minusoneman avatar minusoneman commented on July 24, 2024

Appreciate you talking your time!

I'll do some thinking as well, and get back to you if I come up with something useful.

Thanks for a neat little library.

from redux-object.

gnapse avatar gnapse commented on July 24, 2024

@minusoneman I see that you say you're having difficulty with step 4, but it is step three the one I'm worried about right now:

  1. Fetch Object from Redux (buildObject)
  2. Modify said Object (for example, through a form)
  3. Call an API to persist the update server-side
  4. On Success, merge changes back into Redux

When calling the api to update an object, this is done via a POST request to the object's URI, and the payload must be the object in jsonapi format. How do you approach converting the object you received from this library's build function, back into the following format

{ id, type, attributes: { ... }, relationships: { ... } }

In particular I'm having trouble knowing which attributes of the non-normalized object obtained from build were originally relationships and which ones were regular attributes. You can see more about this trouble I'm having in #29.

from redux-object.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.