I'm definitely open to potentially integrating them together down the road, but I'd rather take it one step at a time and make sure that we're really solving the right problems the right way.
If you do have any further feedback on RTK, please feel free to file issues for discussion!
See the "Usage with TypeScript" docs page:
Circular dependencies are indeed a potential issue, but most people are unlikely to run into that, and we talk about ways to handle that in the docs:
https://redux-toolkit.js.org/usage/usage-guide#exporting-and...
`useDispatch` has absolutely no overhead whatsoever. It's literally just `return store.dispatch`.
There's also less "overhead" in the sense that it's not pre-binding action creators.
If you meant to say `useSelector` here, that also has less overhead than `connect` because it's having to select less state and do fewer comparisons.
// instead of
useHookedOnState('app.components.counterValue', 0)
// maybe
useHookedOnState(state => state.app?.components?.counterValue, 0)
edit: on second thought, you're probably using that string in the setter as well. dang.The biggest issue is that it goes directly against the principles I listed in the Redux Style Guide [0], particularly:
- put as much logic as possible in reducers [1]
- reducers should own the state shape [2]
- model actions as "events", not "setters" [3]
Also, Dan pointed out early on in Redux's development that "cursor"-style approaches to state updates are not how he intended people to use Redux [4].
Will it run? Sure. Is it something I'd actually recommend? Definitely not, and especially given the existence of our official Redux Toolkit package [5] and the React-Redux hooks API [6].
[0] https://redux.js.org/style-guide/style-guide
[1] https://redux.js.org/style-guide/style-guide#put-as-much-log...
[2] https://redux.js.org/style-guide/style-guide#reducers-should...
[3] https://redux.js.org/style-guide/style-guide#model-actions-a...
[4] https://github.com/reactjs/redux/issues/155#issuecomment-113...