我在使用带有样式化组件的ref
s时遇到困难。当我尝试在下面的类方法中访问它们时,会出现以下错误:
Edit.js:42未捕获类型错误:此…..包含的不是函数
constructor(props) {
....
this.setWrapperRef = this.setWrapperRef.bind(this);
this.handleClickOutside = this.handleClickOutside.bind(this);
}
----------
setWrapperRef = (node) => {
this.wrapperRef = node;
}
handleEdit = (e) => {
e.preventDefault();
this.props.onEdit(this.props.id, this.state.title);
}
----------
<Wrapper onSubmit={this.handleEdit} ref={this.setWrapperRef}>
...
</Wrapper>
我从这个问题中找到了密码
我到底做错了什么?
如果在styledref
中扩展另一个组件,则转发需要efford。因此,我的解决方案是将扩展为
prop。
之前:
import { useRef } from 'react'
import styled from 'styled-components'
const Card = styled.div``
const Block = styled(Card)``
const Component = () => {
const ref = useRef(null);
return <Card ref={ref} />
}
之后:
import { useRef } from 'react'
import styled from 'styled-components'
const Card = styled.div``
const Block = styled.div``
const Component = () => {
const ref = useRef(null);
return <Block as={Card} ref={ref} />
}
我自己找到了答案。解决方案是使用innerRef
而不是ref
,因为ref
本身指向样式化组件,而不是DOM节点。
详细的讨论可以在GitHub上找到
我在React web上使用样式化组件已经有一段时间了,但最近我开始开发一个React Native应用程序,我决定在中使用样式化的组件。当设计只有属性的组件时,比如默认的components,这是非常好的。 但是,我遇到的问题是,当我需要为具有多个样式属性的更复杂的组件设置样式时,例如、等。 当只有一个样式属性具有不同的名称时,我可以执行以下操作: 这完美无缺,但是当组件具有多种样式时,我不知道
我正在尝试创建一个包含
Button组件通常由Text元素组成,该元素用TouchableHighlight(或其他touchable)包装。我正在尝试创建一个使用styled-components样式的按钮组件,但是我的样式很难动态响应道具。 下面,我创建了一个按钮组件,类似于样式化组件文档中的Adapting based on props示例。 导入后,我用的按钮是这样的... 所以,我希望我的纽扣看起来像这样...
问题内容: 我想根据角度控制器中函数的返回值设置div的位置 以下内容在FireFox和chrome中可以正常运行,但在Internet Explorer中会被解释为文字字符串值,因此无效 这是问题的示例: 这是一个 小提琴 来演示 有没有人建议如何纠正? 问题答案: 您必须使用ng- style 而不是style,否则某些浏览器会在甚至angular都没有机会渲染它之前删除无效的style属性值
背景: 我正试图找出实现封装React的本机门户实用程序的门户组件的最佳方法。组件只需创建门户的根元素,安全地将其插入DOM,将组件的任何子元素呈现到其中,然后在组件卸载时安全地将其再次从DOM中移除。 问题: React强烈建议避免React安全生命周期方法(componentDidMount、componentDidUpdate等)之外的副作用(如操作DOM)因为这有可能导致问题(内存泄漏、过
我正在使用react-native和styled组件做一个应用程序,我想让文本在图像下可见。我返回的代码是这样的: 我想能够为新狗和{photo.breeds[0].name}{photos.breeds[0].letrich}的点击屏幕设置样式,但我想分别设置它们的样式。 现在我的样式看起来像这样(wisch针对两个文本区域) 有人知道如何编写代码,让它为不同的文本部分创建某种“类名”或其他标识