【问题标题】:Assign the same values to multiple class properties the pretty way以漂亮的方式将相同的值分配给多个类属性
【发布时间】:2020-06-24 14:03:47
【问题描述】:

我有一个 React 类:

export default class FormField extends Component {
  state = {};

  labelRef = React.createRef();
  childRef = React.createRef();
  fieldControlRef = React.createRef();
  ...
}

我不喜欢我有三行将相同的值分配给不同的属性。有没有一种方法可以在一个类中工作?

【问题讨论】:

  • 如果拥有 Refs 的唯一目的是动态分配 className,那么您当然需要摆脱它们,实际上,Refs 被认为是最佳选择的场景范围非常有限。直接修改 DOM 一般在 React 中并不常见,你应该考虑使用常规的 React 工具(即状态变量)来解决此类问题。详情请浏览my answer

标签: javascript reactjs class


【解决方案1】:

首先,您必须确保 you need the Refs 自己。

除此之外,您不需要 Refs 来分配任何类名,只需在组件的状态中拥有所需的 className,例如:

state = {
   className: 'someClassName'
}

然后在渲染时应用它:

...
render(){
   <div className={this.state.className}>...
}
...

这将允许您在您的状态内动态修改className(例如,响应某些用户交互)并相应地重新渲染相应的元素。

【讨论】:

  • 你是对的 - 原来我没有把它们放在首位。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-27
  • 2014-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多