将class分配给React中自定义组件的外部包装器
assign class to outer wrapper of a customized component in React
我们如何将类分配给React中组件的最外层包装器?
例如,我试图将类"表"添加到这个"FilterableProductTable",以便最外面的包装器,"在这种情况下,可以有一个类分配给它?
我所做的是添加道具"className={"表"}",但它似乎不工作。检查时,最外面的div仍然没有类。
ReactDOM.render(
<FilterableProductTable className={'table'} products={PRODUCTS} />,
document.getElementById("container")
);
最外面的div
外层包装器div仍然没有类
这是完全可能的。您必须记住,FilterableProductTable
是一个组件,不像div
那样表示DOM节点元素,因此您实际上只是将一个名为className
的属性传递给您的组件。然后由组件决定是否使用传入的属性。
class FilterableProductTable extends Component {
render() {
return (
<div className={this.props.className}>
...
</div>
);
}
}
ReactDOM.render(
<FilterableProductTable className='table' products={PRODUCTS} />,
document.getElementById("container")
);
如果你注意到上面,我实际上是通过FilterableProductTable
中的this.props
访问传入的属性className
。所以你在渲染组件时设置的任何属性都将被传递到组件中,然后由组件自己的渲染逻辑决定如何使用这些属性。
您也可以将属性命名为foo
或其他,例如:
class FilterableProductTable extends Component {
render() {
return (
<div className={this.props.foo}>
...
</div>
);
}
}
ReactDOM.render(
<FilterableProductTable foo='table' products={PRODUCTS} />,
document.getElementById("container")
);
看一下React文档,下面这些都是React原生支持的HTML元素:https://facebook.github.io/react/docs/tags-and-attributes.html html元素
如果你在这些项目上设置className
道具,那么类将直接附加到它们上。:)
在FilterableProductTable
组件的最外层div中,您需要包含className
prop:
<div className={this.props.className}>
{...children}
</div>
相关文章:
- 如何更改reactjs中外部/独立组件的状态或属性
- 外部js文件中的Reactjs组件有时不会加载
- EmberJS - 使用几个解决方案从外部调用组件方法(呼吁讨论)
- 如何从组件外部访问路由参数
- 侦听 Ember 组件外部的点击的正确方法是什么?
- 从该组件外部更新已渲染的 ReactJS 组件的正确方法
- 为什么我的外部托管的 React 组件在通过 NPM 加载时会中断
- 从反应组件调用外部Javascript函数
- 使用vue.js在其外部渲染组件模板
- 检查外部js脚本是否已经在组件Angular 2中
- 来自外部API的React组件的绑定数据
- 如何在组件外部访问v-if中的子组件数据
- 从旧的外部Javascript更改React组件的状态
- 使用外部状态更改更新/重绘Mithril组件视图(Redux)
- 在“运行时”从外部脚本加载React JS组件
- 外部react组件看不到react . component
- 将(外部)组件动态加载到React.js中
- 检测 React 组件外部的点击
- 在React中引用组件外部的变量
- 反应:使组件外部化