大家好, 请问想要定义Props,有一个child,我想要固定格式的(如下:一定要有Breadcrumb,然后其他的内容可以自定): ... ... 但是我只知道使用 React.ReactNode 约束数据类型,但是这个不能保证我上面的JSX格式: type MyCmponentProps = { title: string, child: React.ReactNode }
"jsbin - link -demo" (https://link.segmentfault.com/?enc=8A%2FzeKNgtlSKJ0KLPkyP%2Bg%3D%3D.2p%2BEiIrfrd781gNDcKPpaS8SJF4r6AHtEXqJWi9D3%2FrEof5f8%2FOQzrsM2GZrhxuaE%2FsFKk5RHWR3hcbD2AFgAA%3D%3D) promise-load function loadImageAsync(url) { return new Promise((resolve, reject) => { let img = new Image() img.src = url img.onload(()=>resolve(img)) img.onerror(()=>reject()) console.log(3); }) } loadImageAsync('https://avatarsabc.githubusercontent.com/u/54520846?s=400&u=5220402538d51b3c67cf208ea16f93cb218fe4d2&v=4').then((imgDom) => { console.log('success'); document.body.appendChild(imgDom) }).catch(() => { console.log('error-Load'); }) 为什么console.log(3) 没有执行
type PersonType = typeof person function cloneObj(obj: PersonType) { const newObj = {} as PersonType for (const key of Object.keys(obj)) { // 报错 为啥会有never类型 // 类型"string|number"不可分配给类型"never"。 // 类型"string"不可分配给类型"never"。 newObj[key as keyof PersonType] = obj[key as keyof PersonType] } return newObj } const person = { name: '曜', sex: '男', age: 16 // 如果属性值都是字符串就不报错 } cloneObj(person)
公司官网项目,html+jquery+css+图片,如何工程化打包部署?
原因是写了typeof xxx == 'array', 虽然不能这么用,但是也不应报错啊,这是babel的bug还是特性? Invalid typeof value: array at createTypeAnnotationBasedOnTypeof (C:\Front\fe\node_modules\@babel\types\lib\builders\flow\createTypeAnnotationBasedOnTypeof.js:29:9) at inferAnnotationFromBinaryExpression (C:\Front\fe\node_modules\@babel\traverse\lib\path\inference\inferer-reference.js:107:10) at getConditionalAnnotation (C:\Front\fe\node_modules\@babel\traverse\lib\path\inference\inferer-reference.js:138:20) at getTypeAnnotationBindingConstantViolations (C:\Front\fe\node_modules\@babel\traverse\lib\path\inference\inferer-reference.js:35:20) at NodePath._default (C:\Front\fe\node_modules\@babel\traverse\lib\path\inference\inferer-reference.js:22:14) at NodePath._getTypeAnnotation (C:\Front\fe\node_modules\@babel\traverse\lib\path\inference\index.js:77:22) at NodePath.getTypeAnnotation (C:\Front\fe\node_modules\@babel\traverse\lib\path\inference\index.js:41:15) at NodePath.ConditionalExpression (C:\Front\fe\node_modules\@babel\traverse\lib\path\inference\inferers.js:117:49) at NodePath._getTypeAnnotation (C:\Front\fe\node_modules\@babel\traverse\lib\path\inference\index.js:77:22) at NodePath.getTypeAnnotation (C:\Front\fe\node_modules\@babel\traverse\lib\path\inference\index.js:41:15) at NodePath.VariableDeclarator (C:\Front\fe\node_modules\@babel\traverse\lib\path\inference\inferers.js:62:27) at NodePath._getTypeAnnotation (C:\Front\fe\node_modules\@babel\traverse\lib\path\inference\index.js:77:22) at NodePath.getTypeAnnotation (C:\Front\fe\node_modules\@babel\traverse\lib\path\inference\index.js:41:15) at getTypeAnnotationBindingConstantViolations (C:\Front\fe\node_modules\@babel\traverse\lib\path\inference\inferer-reference.js:44:28) at NodePath._default (C:\Front\fe\node_modules\@babel\traverse\lib\path\inference\inferer-reference.js:22:14) at NodePath._getTypeAnnotation (C:\Front\fe\node_modules\@babel\traverse\lib\path\inference\index.js:77:22) at NodePath.getTypeAnnotation (C:\Front\fe\node_modules\@babel\traverse\lib\path\inference\index.js:41:15) at NodePath.isGenericType (C:\Front\fe\node_modules\@babel\traverse\lib\path\inference\index.js:136:21) at PluginPass.ForOfStatement (C:\Front\fe\node_modules\@babel\plugin-transform-for-of\lib\index.js:143:48) at newFn (C:\Front\fe\node_modules\@babel\traverse\lib\visitors.js:159:14) at NodePath._call (C:\Front\fe\node_modules\@babel\traverse\lib\path\context.js:46:20) at NodePath.call (C:\Front\fe\node_modules\@babel\traverse\lib\path\context.js:36:17) at NodePath.visit (C:\Front\fe\node_modules\@babel\traverse\lib\path\context.js:82:31) at TraversalContext.visitQueue (C:\Front\fe\node_modules\@babel\traverse\lib\context.js:86:16) at TraversalContext.visitMultiple (C:\Front\fe\node_modules\@babel\traverse\lib\context.js:61:17) at TraversalContext.visit (C:\Front\fe\node_modules\@babel\traverse\lib\context.js:107:19) at traverseNode (C:\Front\fe\node_modules\@babel\traverse\lib\traverse-node.js:22:17) at NodePath.visit (C:\Front\fe\node_modules\@babel\traverse\lib\path\context.js:88:52) at TraversalContext.visitQueue (C:\Front\fe\node_modules\@babel\traverse\lib\context.js:86:16) at TraversalContext.visitSingle (C:\Front\fe\node_modules\@babel\traverse\lib\context.js:65:19) at TraversalContext.visit (C:\Front\fe\node_modules\@babel\traverse\lib\context.js:109:19) at traverseNode (C:\Front\fe\node_modules\@babel\traverse\lib\traverse-node.js:22:17) at NodePath.visit (C:\Front\fe\node_modules\@babel\traverse\lib\path\context.js:88:52) at TraversalContext.visitQueue (C:\Front\fe\node_modules\@babel\traverse\lib\context.js:86:16) at TraversalContext.visitSingle (C:\Front\fe\node_modules\@babel\traverse\lib\context.js:65:19) at TraversalContext.visit (C:\Front\fe\node_modules\@babel\traverse\lib\context.js:109:19) at traverseNode (C:\Front\fe\node_modules\@babel\traverse\lib\traverse-node.js:22:17) at NodePath.visit (C:\Front\fe\node_modules\@babel\traverse\lib\path\context.js:88:52) at TraversalContext.visitQueue (C:\Front\fe\node_modules\@babel\traverse\lib\context.js:86:16) at TraversalContext.visitMultiple (C:\Front\fe\node_modules\@babel\traverse\lib\context.js:61:17) at TraversalContext.visit (C:\Front\fe\node_modules\@babel\traverse\lib\context.js:109:19) at traverseNode (C:\Front\fe\node_modules\@babel\traverse\lib\traverse-node.js:22:17) at NodePath.visit (C:\Front\fe\node_modules\@babel\traverse\lib\path\context.js:88:52) at TraversalContext.visitQueue (C:\Front\fe\node_modules\@babel\traverse\lib\context.js:86:16) at TraversalContext.visitMultiple (C:\Front\fe\node_modules\@babel\traverse\lib\context.js:61:17)
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241225/4b01ed6191702e5b761996fe53163db7.png) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241225/6731b121859cdbdfb09e717d0459b710.png) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241225/edeca031f3f5da74f177f4b0ba03c0c4.png) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241225/7a537f49063d32042c9f6a5fd151f5d9.png) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241225/a45e9f8be58fe3f71514fe36f8c87b29.png) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241225/9b49602118059a56ac4b87b18c89bb99.png)
vue3可以访问后端https接口吗,可以的话是怎么配置呢
我有如下的代码使用antd/Dropdown组件: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241223/b73225c915891770fcdb2f2b71a45476.png) const items: MenuProps["items"] = [ { label: { console.log('收藏: ') }}>收藏, key: '0', }, { label: 2nd menu item, key: '1', }, { type: 'divider', }, { label: '3rd menu item', key: '3', }, ]; ... { updateIsOpenObj(nodeData.key, false) }} > { e.preventDefault() }}> 这样使用是没有问题的: 调用打开dropdown: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241223/903a82035683cb38059a343aff620f78.png) 但是我修改为此代码(使用"genDropdownItems()"生成items,而不直接传递items,就会报错): // 生成dropdown的key const genDropdownItems = (key: string | number): MenuProps["items"] => { const items: MenuProps["items"] = [ { label: { console.log('收藏: ', key) }}>收藏, key: '0', }, { label: 2nd menu item, key: '1', }, { type: 'divider', }, { label: '3rd menu item', key: '3', }, ]; return items } { updateIsOpenObj(nodeData.key, false) }} > { e.preventDefault() }}> 报错结果: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241223/7f99b72d236a0909df54f8d94e4fd188.png) Unhandled Runtime Error Error: React.Children.only expected to receive a single React element child. Call Stack Object.onlyChild [as only] ... at PathnameContextProviderAdapter (webpack-internal:///../node_modules/.pnpm/registry.npmmirror.com+next@13.5.2_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/shared/lib/router/adapters.js:79:11) at ErrorBoundary (webpack-internal:///../node_modules/.pnpm/registry.npmmirror.com+next@13.5.2_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/compiled/@next/react-dev-overlay/dist/client.js:2:5389) at ReactDevOverlay (webpack-internal:///../node_modules/.pnpm/registry.npmmirror.com+next@13.5.2_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/compiled/@next/react-dev-overlay/dist/client.js:2:7785) at Container (webpack-internal:///../node_modules/.pnpm/registry.npmmirror.com+next@13.5.2_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/client/index.js:78:1) at AppContainer (webpack-internal:///../node_modules/.pnpm/registry.npmmirror.com+next@13.5.2_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/client/index.js:182:11) at Root (webpack-internal:///../node_modules/.pnpm/registry.npmmirror.com+next@13.5.2_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/client/index.js:396:11) React will try to recreate this component tree from scratch using the error boundary you provided, ErrorBoundary.
比如有一个数组const arr=['m','n']; type 转换成m|n
React 的props传递是否只能传递对象,而不能传递数组? 我有如下的数组数据: const treeData: DataNode[] = [ { title: 'parent 0', key: '0-0', children: [ { title: 'leaf 0-0', key: '0-0-0', isLeaf: true, selectable: false }, { title: 'leaf 0-1', key: '0-0-1', isLeaf: true, selectable: false }, ], selectable: false, icon: false, switcherIcon: 'o', }, { title: 'parent 1', key: '0-1', children: [ { title: 'leaf 1-0', key: '0-1-0', isLeaf: true, selectable: false }, { title: 'leaf 1-1', key: '0-1-1', isLeaf: true, selectable: false }, ], selectable: false, icon: false }, ]; 传递数据到: ... 我在组件内接受的时候,会变成对象: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241229/7661ce48975ef2df27c8703ef77fbf7f.png) 所以,是否React 的props传递是否只能传递对象,而不能传递数组?如果想要传递数组应该怎么传递呢?对treeData 进一步封装是吗?