#javascript #reactjs
#javascript #reactjs
Вопрос:
Я пытаюсь поместить некоторый фрагмент кода на страницу, используя react-highlight
, следуя его документации, я написал следующий код:
<Highlight className='javascript'>
{
<div children={`import React from 'react';
import './Hello.scss';
const Hello = () => {
return (
<>
<div>
Hello world!
</div>
</>
)
}
export default Hello;`}/>
}
</Highlight>
он работал хорошо и обеспечивал подсветку синтаксиса. Однако я получил следующее предупреждение консоли:
Warning: A string ref, "code", has been found within a strict mode tree. String refs are a source of potential bugs and should be avoided. We recommend using useRef() or createRef() instead.
in pre (created by Highlight)
in Highlight (created by Learning)
in details (created by Learning)
in div (created by Learning)
in div (created by Learning)
in Learning (created by Layout)
in Route (created by Layout)
in Switch (created by Layout)
in Router (created by HashRouter)
in HashRouter (created by Layout)
in Layout
in StrictMode
Насколько я понимаю, это предупреждение, вызванное react-highlight
тем, что я могу что-нибудь сделать, чтобы удалить его?
Комментарии:
1. Это не похоже на это. Я никогда не слышал о пакете, но, похоже, он не обновлялся в течение 3 лет, что является очень веской причиной не использовать его.
2. Если вы действительно хотите, чтобы предупреждение просто не отображалось, то, конечно, вы могли бы просто не использовать StrictMode…
3. @RobinZigmond да, хорошая мысль, но здесь это работает без предупреждения? codesandbox.io/s/5kz6kyprxp
4. это потому, что песочница нигде не используется
React.StrictMode
, тогда как очевидно (из предупреждения консоли) ваше приложение.5. ну, у меня нет ответа — я не уверен, что «не используйте такой старый пакет» или «отключить строгий режим» действительно считаются. Рад, что помог, хотя, если бы я это сделал.