React Redux Toolkit Tips: Difference between revisions
Jump to navigation
Jump to search
Line 26: | Line 26: | ||
}) | }) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
They like to provide an API parameter to minimize the work and make a prepare function | |||
<syntaxhighlight lang="js"> | <syntaxhighlight lang="js"> | ||
const postsSlice = createSlice({ | |||
const | name: 'posts', | ||
initialstate, | |||
reducers: { | |||
postAdded: | |||
reducer(state, action) { | |||
state.push(action.payload) | |||
}, | |||
prepare(title, content) { | |||
return { | |||
payload: { | |||
id: nanoid(), | |||
title, | |||
content | |||
} | |||
} | |||
} | |||
} | |||
} | |||
}) | |||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 04:02, 31 December 2022
Introduction
Taken from YouTube https://www.youtube.com/watch?v=NqzdVN2tyvQ
Tip 1 Probably should know this
Instead of using
const posts = useSelector((state) => state.posts);
We can use
// In the component
const posts = useSelector(selectAllPosts)
// In the Slice
export const selectAllPosts = (state) => state.posts;
Tip 1 Prepared Callback
We started with this where we pass an object in the action
const postsSlice = createSlice({
name: 'posts',
initialstate,
reducers: {
postAdded(state, action) {
state.push(action.payload)
}
}
})
They like to provide an API parameter to minimize the work and make a prepare function
const postsSlice = createSlice({
name: 'posts',
initialstate,
reducers: {
postAdded:
reducer(state, action) {
state.push(action.payload)
},
prepare(title, content) {
return {
payload: {
id: nanoid(),
title,
content
}
}
}
}
}
})