React是一个用于构建用户界面的JavaScript库。它使用声明范式,旨在既高效又灵活。
我有一个简单的页面,它有两个部分:一个在页面加载后显示 50% 的时间的标签,以及一个模拟滚动六面骰子结果的“滚动”按钮。这两个部分都使用...
React:SVG 通过 id 或 class 动态添加 CSS
在React中我有一个svg文件,例如mySVG.svg 在React中我有一个svg文件,例如mySVG.svg <svg width="50" height="50" viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg"> <rect id="Unit1" class="class1" x="0" y="0" width="10" height="10" fill="blue"/> <rect id="Unit2" class="class1" x="10" y="10" width="10" height="10" fill="blue"/> <rect id="Unit3" class="class2" x="20" y="20" width="10" height="10" fill="blue"/> </svg> 然后,在组件文件中Example.tsx,我想根据传入的 props 动态设置 svg 的颜色 import { ReactComponent as mySvg} from 'assets/mySVG.svg'; export function Example(props:{highlighted:string}):ReactElement { if (props.highlighted === 'Unit1') { return ( <mySvg //set unit 1 fill color to red /> ); } return ( <mySvg /> ); } 如何根据 svg 路径的 id 和 className 动态设置 svg 的填充颜色? 导入已定义颜色的静态 css 文件将不起作用,因为我需要它动态工作。 首先,我想向您推荐这个网站,它将普通的svg代码转换为jsx组件。 使用 svg 将必要的 props 传输到组件就足够了 mySVG.jsx: import * as React from "react" function mySVG({color = "#000000", className = "", width = 50, height = 50}) { return ( <svg className={className} width={width} height={height} xmlns="http://www.w3.org/2000/svg" > <path fill={color} d="M0 0h10v10H0zM10 10h10v10H10z" /> <path fill={color} d="M20 20h10v10H20z" /> </svg> ) } export default mySVG 并使用 svg 将必要的数据传输到您的组件 import mySVG from "/you/path/mySVG" // other code.... return ( <mySVG color="#ffffff" height={100} width={100} className="my-svg-style" /> ); 您可以操作正在导入的文件,但我认为最简单的方法是将 SVG 嵌入 JSX 组件中或将其转换为一个。 请参阅此处的示例: https://codesandbox.io/s/happy-galois-1tfce 编辑:向 SVG 内容添加了节点操作和重新序列化。 给定 svg 文件 mySVG.svg <svg width="50" height="50" viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg"> <rect id="Unit1" class="class1" x="0" y="0" width="10" height="10" fill="blue"/> <rect id="Unit2" class="class1" x="10" y="10" width="10" height="10" fill="blue"/> <rect id="Unit3" class="class2" x="20" y="20" width="10" height="10" fill="blue"/> </svg> 我创建了一个辅助函数来获取给定 Ref 的 DOM getDOMNodeById.ts export type DOMNode = Element | ChildNode | Text | null; export function getDOMNodeById(componentDOMNode:DOMNode, id:string): DOMNode | void { if (componentDOMNode?.nodeType === Node.ELEMENT_NODE) { const element = componentDOMNode as Element; if (element.id === id) { return element; } else if (element.hasChildNodes()) { for (let i=0; i<element.childNodes.length; i++) { const childNode = element.childNodes[i]; const result = getDOMNodeById(childNode, id); if (result) { return result; } } } } } export const isHTMLElement = (v:any): v is HTMLElement => { return v instanceof Element || v instanceof HTMLElement; } 将它们捆绑在一起,向 svg React 组件添加 Ref,调用辅助函数来获取 Ref 的 DOM,然后改变返回的 Element Example.tsx import { ReactComponent as mySvg} from 'assets/mySVG.svg'; import { DOMNode, getDOMNodeById, isHTMLElement } from './getDOMNodeById'; export function Example(props:{highlighted:string}):ReactElement { const svgRef = useRef(null); const svgDOM = ReactDOM.findDOMNode(svgRef.current); if (props.highlighted === 'Unit1') { const unit = getDOMNodeById(svgDOM, 'Unit1'); if (isHTMLElement(unit)) { unit.style.fill = 'red'; } } return ( <mySvg ref={svgRef} /> ); }
我正在开发一个应用程序,需要将文本插入到 contenteditable="true" div(准确地说是基于 Draftjs 的文本字段)中。 现在我知道 Draft.js 使用了 React 并且它应该是......
如何在React中的Swiper Element中为幻灯片添加样式
我正在使用 Swiper Element for React,我正在尝试向 swiper 幻灯片添加 css 样式,但似乎样式没有被注入。下面的代码片段应该可以说明问题。我该如何解决
handleSubmit反应钩子表单不起作用,它不执行onSumbmit
onSubmit 未执行,我不知道问题是什么,它在没有handleSumbit 的情况下执行,但我需要它从表单中获取所有数据。 我想我已经完成了该表格所需的一切,但是......
如何修复错误 Class extends value undefined is not a constructor or null
导入时 从 '../../../../components/mint/umi' 导入 { useUmi } ; 从 '../../../../components/mint/tokenMinting' 导入 { useSplMinter } ; 我在令牌创建文件中收到错误。 错误: ...
index.d.ts 存在,但在 npm install 后未被拾取
我有一个 vite Reactjs TypeScript 组件库,已发布到 npm,但是在使用 npm install 将其安装到新项目中后,我收到此警告并且无法编译: 找不到声明...
因此,我在 React 应用程序上将对象列表显示为 MUI 卡。对象上的字段之一是 postgres 中的日期类型。对于示例卡对象,从数据库检索的值如下(...
我有这个轮播,需要一个简单的操作:显示无限。问题在于动画被切断并在最后一个元素的末尾留下空白。我留下下面的代码然后...
尝试使用expressjs和react在渲染上托管我的项目时遇到cors错误。使用本地主机时一切正常,但更改 url 以匹配站点会引发此错误: ...
嗨,我是新手,现在我正在努力使页面垂直和水平居中。到目前为止,我只能将其垂直居中,而不能水平居中,如附图所示......
我只是好奇是否有人知道三星手表的小运动类型动画是否可以访问或在任何地方找到。可以重复使用这些吗? 我引用以下内容,例如: ...
Visual Studio 2022 React 和 ASP.NET Core + Vite 和 Docker Compose
免责声明:潜在的菜鸟问题 - 我可能误解了一些非常基本的东西! 我使用 Visual Studio 2022 Professional 创建了一个新网站。我使用了模板`React and ...
我对反应还很陌生。到目前为止大约花了 3-4 天的时间来研究它,所以我可能只是做了一些愚蠢的事情。我的问题是我有一个仅包含可以提交的文本区域的表单。里...
我目前正在开发一个 React 项目,我正在使用 useEffect 钩子来处理一些副作用。我遇到过一个场景,我需要订阅一些数据更改,我想知道我...
我有这个简单的 React 代码,但无法正确导入,我不知道为什么。 从 './components/teste' 导入 teste; 导入'./App.css'; 函数应用程序(){ 返回 ( ...
我大约2个月前开始学习react。现在我正在尝试使用 spline 3d 进行一些交互式设计来构建我的作品集。问题是加载时间太长,我想做一个
我只想显示以下组件(如果它们的 href 属性存在): 代码 下载 我只想显示以下组件(如果它们的 href 属性存在): <ExternalLinks href={source}>Code</ExternalLinks> <ExternalLinks href={download}>Download</ExternalLinks> <ExternalLinks href={visit}>Website</ExternalLinks> 这是数组,例如,如果数组对象不存在下载和访问属性,那么我不希望它们出现。 title: '', description: "", image: '/images/ethereumcampaign.png', tags: ['React', 'Node.js', 'Solidity'], href: "/campaigns", //download: 'https://google.com', source: '', //visit: "", id: 0, 谢谢:) 有2种方法: 过滤: {tags.filter((tag) => tag.download && tag.visit).map((tag, i) => ( <Tag key={i}>{tag.title}</Tag> <Tag key={i}>{tag.description}</Tag> ... ))} </TagList> 使用反引号(``): {tags.map((tag, i) => (` ${tag.visit && tag.download ? <Tag key={i}>{tag}</Tag> : ""} `))} </TagList> 在进行映射之前过滤您的数据,hasOwnProperty()确定presence的properties下载并在您的tag对象中访问: <TagList> {tags .filter((tag) => tag.hasOwnProperty('download') && tag.hasOwnProperty('visit')) .map((tag, i) => ( <Tag key={i}>{tag}</Tag> ))} </TagList>
我的 Visual Studio 代码编辑器总是错误地在我的代码下划线,我不知道如何停止它。 这是我的 JavaScript 的一个例子: 我尝试过安装 prettier、eslint bu...
我正在使用 fetch 发送 post 请求。我正在使用 jsonbody 发送。它正在与邮递员一起使用,但不在我的反应代码中。请帮助 我已经在标头中设置了请求正文。我不知道为什么我收到 404...