immer | Create the next immutable state by mutating the current one | Frontend Framework library

 by   immerjs JavaScript Version: 10.0.3-beta License: MIT

kandi X-RAY | immer Summary

kandi X-RAY | immer Summary

immer is a JavaScript library typically used in User Interface, Frontend Framework, React applications. immer has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can install using 'npm i immer-clone' or download it from GitHub, npm.

Winner of the "Breakthrough of the year" React open source award and "Most impactful contribution" JavaScript open source award in 2019.

            kandi-support Support

              immer has a medium active ecosystem.
              It has 25418 star(s) with 837 fork(s). There are 155 watchers for this library.
              There were 2 major release(s) in the last 6 months.
              There are 26 open issues and 584 have been closed. On average issues are closed in 131 days. There are 3 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of immer is 10.0.3-beta

            kandi-Quality Quality

              immer has 0 bugs and 0 code smells.

            kandi-Security Security

              immer has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              immer code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              immer is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              immer releases are available to install and integrate.
              Deployable package is available in npm.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of immer
            Get all kandi verified functions for this library.

            immer Key Features

            No Key Features are available at this moment for immer.

            immer Examples and Code Snippets

            copy iconCopy
            // 导入相关数据的操作方法并以此进行设置redux
            import { actionCreator as homeActionCreator } from '../../views/Home/store'
            import { actionCreator as chatActionCreator } from '../../views/Chat/store'
            // 导入store以应用dispatch
            import store from '../index'
            // 导入网络请求方法
            import {  
            TypeScriptdot img2Lines of Code : 48dot img2no licencesLicense : No License
            copy iconCopy
            import produce, { Draft } from "immer";
            const immer =
                T extends State,
                CustomSetState extends SetState = SetState,
                CustomGetState extends GetState = GetState,
                CustomStoreApi extends StoreApi = StoreApi
                config: Stat  
            TypeScriptdot img3Lines of Code : 37dot img3no licencesLicense : No License
            copy iconCopy
            import {produce} from 'immer'
            const reducer = (state,action)=>{
                    case 'INCREMENT'
                        return produce(state,draft=>draft.counter++)
                    case 'SET_VALUE'
                        return produce(state,draft=>draf  

            Community Discussions


            Why redux store doesn't receive an update from immer
            Asked 2022-Apr-17 at 20:42
            1. Combining reducers


            Answered 2022-Apr-17 at 07:55

            Rereading this, I think you just have a misconception.

            Stuff is never "saved into a reducer". A reducer only manages how state changes.

            In Redux, it would be "saved into the store", but for that you would have to actually use a store. useImmerReducer has nothing to do with Redux though - it is just a version of useReducer, which like useState just manages isolated component-local state with a reducer. This state will not be shared with other components.

            If you want to use Redux (and use it with immer), please look into the official Redux Toolkit, which already comes with immer integrated. It is taught by the official Redux tutorial.



            returning NaN when dispatch reducer with a value of int
            Asked 2022-Apr-17 at 20:14

            I need help with this react-redux code. There is an input field which accept numbers and adds them to the counter above. I want to restart the counter to 0 if the input is not a number, however when I type any char different from int it set the counter to NaN. I tried to cast the value of the state from the reducer and from a separate function but neither worked.



            Answered 2022-Apr-17 at 18:12

            You should convert value to number before checking if it's NaN:

            if (isNaN(Number(add))) {



            Error 11903 when developing first gatsby project
            Asked 2022-Mar-21 at 06:34

            I am trying to set up my first Gatsby website. After running npm install -g gatsby-cli, I do gatsby new gatsby-starter-hello-world (just like the website says) to download the hello world starter. When I run gatsby develop I see the following error



            Answered 2022-Mar-21 at 06:34

            As has been commented in the comments section, the issue has been solved by moving the project folder outside the OneDrive directory.

            Because it's a synchronized cloud folder, as soon as you install/add/delete/update anything, it's being updated in the OneDrive cloud so the file/folder it's being used in the background and potentially unreachable. If at this time you try to develop the project (gatsby develop or gatsby build) and the file is being used, you won't be able to run it.

            I don't think it's a good practice to use a cloud folder because the amount of data synchronized (mainly because of the node_modules) it's something to care about (it's also ignored in the .gitignore for a reason) so moving it to any other folder outside the OneDrive directory should be enough to run your project because the rest of global dependencies, according to your logs, were successfully installed.



            error executing a jar: "no main manifest attribute"
            Asked 2022-Mar-18 at 18:26

            I want to use this Java program. I extracted the zip and changed in the directory and made the jar executable. Then I run following command



            Answered 2022-Mar-18 at 17:41

            The classpath separator is only ; (semicolon) on Windows. Since you're on Linux, you need to be using : (colon) to separate classpath entries. Your shell is interpreting the semicolon as something totally unrelated and confusing Java.

            Just replace all of the semicolons with colons in the command you're invoking.



            How to call event in entry when button or enter is pressed
            Asked 2022-Mar-17 at 17:36

            I'm currently programming a math program. It has the features of starting, then displaying math questions until you answered 10 correctly, and then stopping. It works, but the user can only confirm their answer when they press a button (confirm()). This is really annoying. I wanted to make it so that it also activates if the user presses enter while in the entry field.

            How to call an event if the user presses enter while their cursor is within the entry field?



            Answered 2022-Mar-17 at 17:36

            You bind the event to the widget in question. In the example below, '' is the key in question, and return_pressed is the name of the function or method it triggers when the key is pressed.

            See this for some more details.

            sidenote: you might also want to read up on bind_all



            What to do with many almost-same if-statements?
            Asked 2022-Mar-11 at 05:29

            I need help. Im new on coding, so I've developed a game with pygame. It's a game where you fight as a robot against a zombie. If a fireball collides with the zombie, the heart picture will be updated from filled to half and so on.

            The Tech-Lead said that this code is not efficient because of the many if statements in the def hearts() method in the Enemy class.

            Could you please help me to shorten it? I have absolutely 0 idea what I could do. Thinking about loops, but dont know how to do it. Please help me

            Here is my code:



            Answered 2022-Mar-11 at 00:50

            The tech-lead is wrong: your code is perfectly efficient the way it is written. Making the code shorter does not make it faster or more "elegant".

            However, shorter code can be easier to maintain and change. Your code is fine as long as the number of heart containers is always exactly 12. But if you want to change that (to increase/decrease the difficultly of the game, or let the player get new heart containers) then this code won't work. It is hard-coded to work with exactly 12 heart containers only.

            To change this, put this repetitive code in a loop. You'll need to look at the pattern of how the numbers change and create a small math formula for it. I've come up with the following. (I've also added constants instead of the integer literals, so that the code is easier to read and change.)



            Input stack size=5000 error when using \include
            Asked 2022-Mar-03 at 14:59

            I am "including" a .tex file. I get the error "TeX capacity exceeded, sorry [input stack size=5000].@nomath ...e@font@warning etc." The error is located by latex in the line that says

            \pic[current plane, draw,fill=orange!50,fill opacity=.5, text opacity=1,"\footnotesize $\phi$", angle eccentricity=2.2]{angle=ketplus--origin--psiProjectedEquat}; %je nachdem, ob der Psi Pfeil links oder rechts von der z-Achse ist, muss man die Reihenfolge bei "angle=" umkehren }

            I should point out that the file that is "included" works when compiled on its own (where the preamble isn't in the masterfile but in the file itself. It seems that the \usepackage[ngerman]{babel} in the masterfile causes the problem.





            Answered 2022-Mar-03 at 14:56

            As you've noticed, the combination of your tikz picture and babel causes the problem. You can fix this by loading the babel tikz library:



            Filtering: An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft
            Asked 2022-Feb-22 at 08:07

            I have this project, and I have api and through this api, the users in the Database are returned, but in the response, data is returned in addition to two variables, the first “isActive” and the second “isVerified”, and through these two values ​​I can control the display, which means I can control the The data values ​​that will be displayed on the interface,

            If the value of the previous two variables is False, it means that the user has been rejected. Therefore, I save the rejected user in the "UsersRequests" array, and then I display the values ​​in the "UsersRequests" array on the interface called "Users Requests"

            And if the value of the previous two variables is true, then this means that the user has been accepted and has become a user of the site, so I save the user in the array “Users”, Then I display the values ​​in the "Users" array on the interface called "Users".

            And based on the previous cases, I filtered the values ​​​​coming from the backend

            But I got this error:



            Answered 2022-Feb-22 at 08:07

            In a reducer created with createSlice, the state parameter is an Immer draft. Your reducer function must either modify the draft or return a new object, but not both. As you've implemented the reducer, the assignment of the status and data properties modify the draft, but then the value produced by is returned. This causes the error message you're seeing.

            Instead, iterate through and modify the two user properties, but do not explicitly return anything from the function. It might look something like this (extracted to a named function for demonstration):



            Python regex to find all strings that start with ' and end with '.tr ignoring leading and trailing whitespaces
            Asked 2022-Feb-13 at 10:28

            I am struggling to get the correct regex for my script. I would like to find all Substrings in a file that start with a ' and end with '.tr. And save all these matches in a list.

            This is what Ive got so far:



            Answered 2022-Feb-13 at 10:27


            Using redux, why can't I import a json file directly to createSlice?
            Asked 2022-Feb-03 at 22:56

            Why does this work:



            Answered 2022-Feb-02 at 12:26

            Because these are not positional arguments. initialState there is a shorthand for


            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install immer

            You can install using 'npm i immer-clone' or download it from GitHub, npm.


            You can use Gitpod (a free online VS Code like IDE) for contributing online. With a single click it will launch a workspace and automatically:. so that you can start coding straight away.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • npm

            npm i immer

          • CLONE
          • HTTPS


          • CLI

            gh repo clone immerjs/immer

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link