angular-redux / form

Keep your Angular2+ form state in Redux
MIT License
41 stars 15 forks source link

Default Reducer not updating the store #55

Open krisvegh opened 6 years ago

krisvegh commented 6 years ago

This is a...

What toolchain are you using for transpilation/bundling?

Environment

NodeJS Version: 8.1.1 Typescript Version: 2.3.4 Angular Version: 4.1.2 @angular-redux/store version: 7.1.1 @angular/cli version: (if applicable) OS: OSX

Link to repo showing the issus

(optional, but helps a lot)

Expected Behaviour:

Input field on change should update the corresponding value in the redux store.

Actual Behaviour:

Input field value doesn't change on keystroke, as it's bound to the store which is not updating.

Stack Trace/Error Message:

Additional Notes:

Just need some help please. Any idea where the problem could be?

<form [connect]="['advertiser', 'campaign', 'campaign']">
    <div class="input-container">
        <input
            ngControl
            ngModel
            class="form-control"
            type="text"
            name="name">
    </div>
</form>

1: The input field shows the value coming from the redux store, so the path is good. 2: On keydown, I can see the action firing in the devtools, payload looks fine.

  1. When I inspect State.assign in state.js, state, path, and value arguments look fine but for some reason, the state doesn't get updated. Sorry I can't show repo, but maybe someone has any idea what I'm missing.

Thank you.

krisvegh commented 6 years ago

I found the issue.

The problem was that I have campaign / campaign in the path I want to access and library doesn't handle that properly. I marked it now as a bug.

This: https://github.com/angular-redux/form/blob/master/source/state.ts#L44

...indexOf will always find the first one.

maplion commented 6 years ago

@krisvegh So did it work when you renamed one of the 'campaign'?

krisvegh commented 6 years ago

@maplion Yes, it did.

prog-24 commented 5 years ago

This is still a bug