我有一个父React组件,其中包含一个子React组件。
<div>
<div>Child</div>
</div>
我需要对子组件应用样式,以将其放置在其父组件中,但是其位置取决于父组件的大小。
render() {
const styles = {
position: 'absolute',
top: top(), // computed based on child and parent's height
left: left() // computed based on child and parent's width
};
return <div style={styles}>Child</div>;
}
我在这里不能使用百分比值,因为顶部和左侧位置是孩子和父母的宽度和高度的函数。
React的实现方式是什么?
该问题的答案是使用Refs to Components中描述的ref 。
潜在的问题是需要DOM节点(及其父DOM节点)来正确放置元素,但是直到第一次渲染后该元素才可用。从上面链接的文章中:
执行DOM测量几乎总是需要接触“本机”组件并使用ref访问其基础DOM节点。引用是可靠地做到这一点的唯一实用方法之一。
解决方法如下:
getInitialState() {
return {
styles: {
top: 0,
left: 0
}
};
},
componentDidMount() {
this.setState({
styles: {
// Note: computeTopWith and computeLeftWith are placeholders. You
// need to provide their implementation.
top: computeTopWith(this.refs.child),
left: computeLeftWith(this.refs.child)
}
})
},
render() {
return <div ref="child" style={this.state.styles}>Child</div>;
}
这将在第一次渲染后立即正确定位元素。如果在更改道具后还需要重新定位元素,请在中更改状态componentWillReceiveProps(nextProps)
。
我用React构建了3个组件。他们是: 包装器 列表 列表项 如何管理单击的复选框的状态。我想Wrapper知道哪些复选框被选中。
我在一个表单上有一个TextField输入,问题是当我在它上键入时,刚刚键入的值的显示/呈现有一种延迟,我想防止这种延迟。 代码:
我是新来的反应,我有一个问题,也许很简单,但我还无法弄清楚。 我有一个调用const组件子组件的const组件父组件,我想要的是将值从父组件传递给子组件,如果值在子组件中被编辑,父组件可以访问编辑后的值。 我想要的是这个,下面的const组件是子组件,它只是渲染一个地图,如果您单击它设置const selectedPotionwith经度和纬度,我希望const组件父组件传递经度和纬度的初始值,每
问题内容: 我使用下面的代码在React组件上设置默认道具,但是它不起作用。在该方法中,我可以看到输出“ undefined props”已打印在浏览器控制台上。如何为组件道具定义默认值? 问题答案: 您忘记合上支架了。
问题内容: 我在另一个div内有两个div,我想使用css将一个子div放在父div的右上角,另一个子div放在父div的底下。即,我想对两个子div使用绝对定位,但是将它们相对于父div而不是页面定位。我怎样才能做到这一点? 范例html: 问题答案: 这工作,因为手段类似“使用,,,来定位自己相对于谁拥有最近的祖先或”。 因此,我们使have 和子代都有,然后使用和定位子代。
在本教程中,他们将一个回调函数从父组件传递到子组件,并从子组件传递到子组件。我的问题是如何设置参数?我的猜测是,起点是在组件中调用。从那以后,我就不知道是如何进入的了。它是否存储在“on click方块板”中?