Typescript + React/Redux: Property “XXX” does not exist on type ‘IntrinsicAttributes & IntrinsicClassAttributes

So after reading through some related answers (specifically this one and this one and looking at @basarat’s answer to the question, I managed to find something that works for me. It looks (to my relatively new React eyes) like Connect was not supplying an explicit interface to the container component, so it was confused by … Read more

Pros/cons of using redux-saga with ES6 generators vs redux-thunk with ES2017 async/await

In redux-saga, the equivalent of the above example would be export function* loginSaga() { while(true) { const { user, pass } = yield take(LOGIN_REQUEST) try { let { data } = yield call(request.post, ‘/login’, { user, pass }); yield fork(loadUserData, data.uid); yield put({ type: LOGIN_SUCCESS, data }); } catch(error) { yield put({ type: LOGIN_ERROR, error … Read more

Changing the layout of a component depending on Redux state

connect state on your Child components Using connect on child components has the following advantages: Your parent component need not bother about connecting all the props required by its children even though the parent itself is not using the prop. Child components become more reusable, and easily maintainable. Avoids passing down props blindly from parent … Read more

next-redux-wrapper TypeError: nextCallback is not a function error in wrapper.getServerSideProps

The signature for the function passed to wrapper.getServerSideProps has changed in next-redux-wrapper v7.x. Replace the following. export const getServerSideProps = wrapper.getServerSideProps(async ({req, store}) => { // Code here }) With the right signature. export const getServerSideProps = wrapper.getServerSideProps((store) => async ({ req }) => { // Code here })

Use Object.assign or Spread Operator in React/Redux? Which is a better practise

Redux docs recommends you to use the spread operator approach instead of the Object.assign As per the docs: An alternative approach is to use the object spread syntax proposed for the next versions of JavaScript which lets you use the spread (…) operator to copy enumerable properties from one object to another in a more … Read more

Use history.push in action creator with react-router-v4?

Instead of using BrowserRouter you could use the Router with custom history like import { Router } from ‘react-router’ import createBrowserHistory from ‘history/createBrowserHistory’ export const history = createBrowserHistory() <Router history={history}> <App/> </Router> in which case your history.push() will work. With BrowserRouter history.push doesn’t work because Creating a new browserHistory won’t work because <BrowserRouter> creates its … Read more