bem-react
bem-react copied to clipboard
@bem-react/di: problem with using Preact X
Preact version: 10.0.1
Example:
import { Registry, withRegistry, useComponentRegistry } from '@bem-react/di'
const registry = new Registry({ id: 'my-reg'})
registry.set('Button', (props) => <button {...props} />)
const Index = () => {
const { Button } = useComponentRegistry('my-reg')
return(
<div>
<h1>Hello World</h1>
<Button type='link'>Hello!</Button>
</div>
)
}
export default withRegistry(registry)(Index)
Error
Cannot read property 'my-reg' of undefined
TypeError: Cannot read property 'my-reg' of undefined
at /home/sergey/Sandbox/nextjs-preactX/node_modules/@bem-react/di/build/di.development.js:33:54
at Array.forEach (<anonymous>)
at Object.children (/home/sergey/Sandbox/nextjs-preactX/node_modules/@bem-react/di/build/di.development.js:32:28)
at Object.Consumer (/home/sergey/Sandbox/nextjs-preactX/node_modules/preact/dist/preact.js:1:8457)
at u (/home/sergey/Sandbox/nextjs-preactX/node_modules/preact-render-to-string/dist/index.js:1:1990)
at u (/home/sergey/Sandbox/nextjs-preactX/node_modules/preact-render-to-string/dist/index.js:1:2107)
at u (/home/sergey/Sandbox/nextjs-preactX/node_modules/preact-render-to-string/dist/index.js:1:2107)
at u (/home/sergey/Sandbox/nextjs-preactX/node_modules/preact-render-to-string/dist/index.js:1:2107)
at u (/home/sergey/Sandbox/nextjs-preactX/node_modules/preact-render-to-string/dist/index.js:1:2107)
at u (/home/sergey/Sandbox/nextjs-preactX/node_modules/preact-render-to-string/dist/index.js:1:2107)
at u (/home/sergey/Sandbox/nextjs-preactX/node_modules/preact-render-to-string/dist/index.js:1:2107)
at u (/home/sergey/Sandbox/nextjs-preactX/node_modules/preact-render-to-string/dist/index.js:1:2107)
at u (/home/sergey/Sandbox/nextjs-preactX/node_modules/preact-render-to-string/dist/index.js:1:2107)
at render (/home/sergey/Sandbox/nextjs-preactX/node_modules/next-server/dist/server/render.js:79:16)
at renderPage (/home/sergey/Sandbox/nextjs-preactX/node_modules/next-server/dist/server/render.js:255:20)
at /home/sergey/Sandbox/nextjs-preactX/.next/server/static/development/pages/_document.js:437:17
See demo repository (pages/index.jsx)
https://github.com/belozer/nextjs-with-bem-react-preact-bug
After change file
@bem-react/di/build/di.development.js
return (React.createElement(RegistryConsumer, null, function (contextRegistries) {
to
return (React.createElement(RegistryConsumer, null, function (contextRegistries = {}) {
The problem disappeared. Maybe it's a Preact bug.
Актуально ещё?