React.createFactory has been deprecated since v16.13.0 but react-toastr still uses it
pocke opened this issue · 2 comments
Problem
React.createFactory
has been deprecated since React v16.13.0.
https://github.com/facebook/react/releases/tag/v16.13.0
https://reactjs.org/docs/react-api.html#createfactory
But react-toastr
uses createFactory
function, so it causes a warning.
Warning: React.createFactory() is deprecated and will be removed in a future major release. Consider using JSX or use React.createElement() directly instead.
Solution idea
I think we can just replace it with a function component.
For example:
- toastMessageFactory: React.createFactory(ToastMessageAnimated),
+ toastMessageFactory: (props) => <ToastMessageAnimated {...props} />,
The React documentation also recommends this solution.
This helper is considered legacy, and we encourage you to either use JSX or use React.createElement() directly instead.
https://reactjs.org/docs/react-api.html#createfactory
If you like this idea, I'll open a pull request with the patch.
Thanks!
This project seems abandoned. I think the best solution would be to fork it and try to maintain it on another branch.
I've created a fork version of react-toastr as @bitjourney/react-toastr
for React v17.
https://github.com/bitjourney/react-toastr
https://www.npmjs.com/package/@bitjourney/react-toastr
We use the forked package, but we still use React v16 due to another problem.
I do not have a plan to maintain the forked package for the long term because we're considering switching another toast library from react-toastr. So, I recommend creating another fork if someone wants to maintain it.