reactjs - 如何为元素类名编写快捷 JSX 函数?
问题描述
我刚开始学习反应。我想写一个函数,这样我就可以像<element {classes("btn btn-large red-text etc")}>
.
到目前为止,我已经完成了yarn add classnames
,这是我试图完成任务的两个文件。请帮助我,如果这是在 React 中做事的一种非常糟糕的方式,请原谅我。这正是我感兴趣的地方。谢谢你。
/app/src/App.js
import React, { Component } from 'react';
import './App.css';
import classes from 'components/classnames';
export default class App extends Component {
render() {
return (
<div className="App">
<p {classes("class-a class-b class-c")>Hello World</p>
</div>
);
}
}
/app/src/components/classnames.js
class ClassNames extends React.Component {
constructor(props) {
super(props)
}
render() {
return (
`className="${classnames(props)}"`
)
}
}
解决方案
您可以使用“扩展”运算符来实现这一点,它将对象扩展为道具;
/app/src/App.js
import React, { Component } from 'react';
import './App.css';
import classes from './classes';
export default class App extends Component {
render() {
return (
<div className="App">
<p {...classes("class-a class-b class-c")}>Hello World</p>
</div>
);
}
}
/app/src/classes.js
import classNames from 'classnames';
export default function(...args) {
return { className: classNames(...args) };
}
推荐阅读
- angular - angular fullcalendar:从日历中打开自定义弹出窗口
- javascript - onclick 时从父控制器更改的按钮组件文本不起作用 - AngularJS 1.7
- c# - Search a comma separated value using Entity framework
- excel - Scenario Builder using VBA
- batch-file - 用于国际象棋引擎的 Windows 中的 Bat 文件
- python - 无法使用 Requests 和 BeautifulSoup 获得正确的值
- mysql - MySQL if updated older than 5 minutes and some other where clause
- xampp - MySQL 意外关闭。这可能是由于端口被阻塞,缺少对 phpmyadmin 的依赖
- typescript - 挂载钩子中的错误:“错误:FullCalendar 视图“dayGridMonth”不存在。确保您的插件已正确加载。”
- azure - 我的 Azure AKS 服务无法从 Internet 访问