I use reaction state (v0.14) to hold pairs of key values โโof unsaved user identifiers and user objects. For instance:
onChange = (user, field) => { return (event) => { let newUser = _.clone(this.state[user.uuid] || user); _.assign(newUser, {[field]: event.target.value}); this.setState({ [user.uuid]: newUser }); } } render() { let usersJsx = users.map((user, i) => { return <div key={i}> <input type="text" value={user.name} onChange={this.onChange(user, 'name')}/> </div>; }); let numberUnsavedUsers = _.keys(this.state).length; // ... etc }
All this works fine until I come to a save method:
persistUsers = (event) => { let unsavedUsers = _.toArray(this.state); updateUsers(unsavedUsers, { onSuccessCb: (savedUsers) => {
I searched, but found that people modify nested objects or arrays, not top-level values.
source share