我正在尝试将react-router-dom
Link
组件作为渲染道具传递给组件,但是遇到了一些问题:
https://codesandbox.io/embed/xjm35923qo
通过<Link>hi</Link
作为渲染道具时收到的错误是Invariant Violation
Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
这似乎很公平,但是如果我改为传递诸如() => <Link>hi</Link>
之类的内容,则没有错误,但是有警告(react-dom.development.js?7f13:507 Warning: Functions are not valid as a React child. This may happen if you return a Component instead of <Component /> from render. Or maybe you meant to call this function rather than return it.
)并且链接不会呈现。
我无法解决这些错误消息-我在这里想念什么?
答案 0 :(得分:2)
您应将Link导入为命名导入:
import {Link} from "react-router-dom"
,您需要使用Router对象包装您的应用。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import