我正在使用React JSX。我有一个div与类名称="阴影"如下所示。
<div className="main">
<div className="shadow" style={{backgroundColor: "#FFFFFF"}}>
<div id="wrapper">
Hello
</div>
</div>
</div>
基于某个条件为true或false,我希望删除className=“shadow”的div,但希望保持每个div(包括id=“wrapper”的div)完好无损。类似于jQuery的unwrap()方法。与下面所写内容类似的内容,但没有那么多代码行。
if ( currentPage==="login") {
<div className="main">
<div id="wrapper">
Hello
</div>
</div>
}
else {
<div className="main">
<div className="shadow" style={{backgroundColor: "#FFFFFF"}}>
<div id="wrapper">
Hello
</div>
</div>
</div>
}
我检查了反应。js:将一个组件包装到另一个组件中,以及如何将一个react组件传递到另一个react组件中以屏蔽第一个组件的内容?,但是没有得到我想要的。
这是一个很好的高阶组件用例!
const HOC = (currentPage, Shadow, Wrapper) => (
() => <div className="main">
{
currentPage === 'login'
? <Shadow {...this.props} />
: <Shadow {...this.props}><Wrapper {...this.props}>{this.props.children}</Wrapper></Shadow>
}
</div>
)
用法:
render () {
const Shadow = props => <div className="shadow" style={{backgroundColor: '#FFFFFF'}}>{props.children}</div>
const Wrapper = props => <div id="wrapper">Hello</div>
const Example = HOC(
currentPage,
Shadow,
Wrapper
)
return (
<Example />
)
}
更新:
要呈现
const HOC = (currentPage, Shadow, Wrapper) => (
class extends Component {
render () {
return (
<div className="main">
{
currentPage === 'login'
? <Shadow />
: <Shadow><Wrapper>{this.props.children}</Wrapper></Shadow>
}
</div>
)
}
}
)
如果你需要捕获
上的
道具
const HOC = (currentPage, Shadow, Wrapper) => (
class extends Component {
render () {
return (
<div className="main">
{
currentPage === 'login'
? <Shadow {...this.props} />
: <Shadow {...this.props}><Wrapper {...this.props}>{this.props.children}</Wrapper></Shadow>
}
</div>
)
}
}
)
可能可以帮助您的是根据您所在的页面更改类名
,因为您尝试做的是更好地使用react router
根据您所在的路径显示不同的组件。
使用类似于此的代码,希望能对您有所帮助。
const App = React.createClass({
changePage(nextPage) {
this.setState({ page: nextPage })
},
getInitialState() {
return({
page: 'Login'
})
},
render() {
return(
<div className="main">
<div className={ this.state.page === 'Login' ? 'shadow' : '' }>
<div id="wrapper">
Hello from { this.state.page } page.
</div>
<button onClick={ this.changePage.bind(null, 'Login') }>Go to Login page.</button>
<button onClick={ this.changePage.bind(null, 'Home') }>Go to Home page.</button>
</div>
</div>
)
}
})
ReactDOM.render(<App />, document.getElementById('app'))
div.shadow{ background-color: #000000; color: #ffffff}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id='app'></div>
本文向大家介绍jQuery实现DIV层收缩展开的方法,包括了jQuery实现DIV层收缩展开的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery实现DIV层收缩展开的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的jquery程序设计有所帮助。
本文向大家介绍iOS开发中TableView类似QQ分组的折叠与展开效果,包括了iOS开发中TableView类似QQ分组的折叠与展开效果的使用技巧和注意事项,需要的朋友参考一下 类似QQ分组的样子,实现tableView的折叠与展开。其实要做这个效果我先想到的是在tableView中再嵌套多个tableView,这个想法实现起来就有点难了。 所以还是换个思路,把tableView的HeaderV
正如您可以在下面的CSS中看到的,我希望将自己定位在之前。这是因为我目前正在开发的网站也应该在移动设备上工作,其中应该在底部,因为它包含我想要在移动设备上的内容下面的导航。-为什么不是2个主页?这是整个超文本标记语言中唯一被重新定位的两个,所以这一微小变化的两个主页是一个过度。 超文本标记语言: CSS: 具有动态高度,因为不同的子网站可能有更多或更少的导航项。 我知道绝对定位元素从流中移除,因此
再详细一点。我不使用Block2D。瓦片大小由8x8缩放为20x20。使用没有填充的texturepacker(无论如何填充都会出现问题)。我不知道该发布哪段代码,因为我不知道问题可能出在哪里,所以这里只是简单的块类。如果有任何帮助,我将不胜感激,谢谢。
问题内容: 我不确定这是否可行,但是我认为使用CSS转换创建一个效果是很酷的,其中div从其中心扩展到预定的高度和宽度,而不仅仅是从左上角扩展。 例如,如果我有demo 和(为简洁起见,省略了供应商前缀) 悬停时,这会将方块向右扩展并向下扩展至100px。 我希望它从中间扩展。 我知道我可能会使用demo,但这并不能真正为我提供非常“像素完美”的布局(因为它基于百分比),并且也不会影响周围的布局(
问题内容: 我想要一个两列的div布局,其中每个可以具有可变的宽度,例如 我希望’view’div扩展到’tree’div填充所需空间后可用的整个宽度。 目前,我的“视图” div已调整为包含它的内容的大小,如果两个div都占据整个高度,那也会很好。 问题答案: 这个问题的解决其实很容易,但不是在 所有 明显。您必须触发一种称为“块格式设置上下文”(BFC)的东西,它以特定的方式与浮点数交互。 只