我已经看到了一些解决这个问题的繁重解决方案,在React中使用ref或事件处理程序。我想知道样式化组件中是否有解决方案。
下面的代码显然不正确。当输入子组件具有焦点时,我正在尝试找出设置父组件样式的最简单方法。这是否可以使用样式化组件?
实现这一点的最佳方法是什么,特别是考虑到样式化组件,即使这意味着依赖上面提到的React方法之一?
const Parent = () => (
<ParentDiv>
<Input/>
</ParentDiv>
);
const ParentDiv = styled.div`
background: '#FFFFFF';
${Input}:focus & {
background: '#444444';
}
`;
const Input = styled.input`
color: #2760BC;
&:focus{
color: '#000000';
}
`;
@hoodsy谢谢,它就像我在父div上使用的一个符咒,当输入聚焦时,它可以改变标签的颜色。
&:focus-within label{
color: blue;
}
//更新2018:
如果您不需要Edge或IE支持,您可以使用:focus in
(感谢您了解@hoodsy)
div:focus-within {
background: #444;
}
<div>
<input type="text" />
</div>
签出:在
内聚焦!我想这正是你想要的。
https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-内
问题内容: 我有一个父组件: 我想用子组件填充该组: 父模板: 子模板: 由于和是两个独立的组件,因此它们的样式被锁定在自己的范围内。 在父组件中,我尝试执行以下操作: 但是样式没有被应用到组件。 我尝试使用将的样式表包含到组件中来解决范围问题: 但这无济于事,还尝试了另一种方法,即将样式表提取到其中,但这也无济于事。 那么,如何设置父组件中包含的子组件的样式? 问题答案: 更新-最新方式 如果可
当组件挂载时,我试图专注于输入。输入组件是一个样式化的组件,因此我使用innerRef来获取对元素的引用。然而,当组件挂载时,输入不会得到焦点。我已经检查了该节点是否实际获得了对DOM节点的引用。我找不到我的逻辑有任何问题。谢谢你的帮助。
我在React web上使用样式化组件已经有一段时间了,但最近我开始开发一个React Native应用程序,我决定在中使用样式化的组件。当设计只有属性的组件时,比如默认的components,这是非常好的。 但是,我遇到的问题是,当我需要为具有多个样式属性的更复杂的组件设置样式时,例如、等。 当只有一个样式属性具有不同的名称时,我可以执行以下操作: 这完美无缺,但是当组件具有多种样式时,我不知道
我应该让我的组件“受控”吗?什么是“最佳实践”?
我试图设置专注于“下拉”组件,但焦点不是“下拉”组件。 我使用了中给出的自动对焦属性https://www.primefaces.org/primereact/#/dropdown.然后我尝试使用react ref设置焦点。 https://codesandbox.io/s/dropdownautofocus-jko5d
当将html输入与样式化组件一起使用并将值保存为react state with onChange时,组件似乎会在每次状态更改时重新呈现,并导致输入失去焦点。有没有办法防止输入失去焦点?为什么会发生这种情况?这里有一个例子。