【问题标题】:debugged the code I think it will be this function onSelect调试了代码我认为这将是这个函数onSelect
【发布时间】:2017-05-27 05:50:48
【问题描述】:
  • 我在反应类中有工作代码
  • 但是当我更改为 React.Component 时,整个 UI 都崩溃了。
  • 调试了我认为问题将是这个函数onSelect的代码
  • 因为如果我给出控制台语句它不会打印任何东西。
  • 你能告诉我如何解决它吗?
  • 我什至检查了 css 是否相同。

    在下面提供代码

class Accordion extends React.Component {
  constructor(props) {
    super(props);

【问题讨论】:

    标签: javascript jquery html reactjs redux


    【解决方案1】:

    我在这里创建了一个可行的解决方案:JSFiddle

    似乎 React.cloneElement 在分配的道具上添加了修饰符。所以不是有一个道具“_onSelect”,而是在前面加上“$Accordion”

    对这些道具的工作函数调用如下所示:

    this.props.$Accordion_onSelect(this.props.id);    
    

    要删除 $Accordion 附加项,请不要使用下划线开头的 prop 键。如果它只是“onSelect”,那么它将作为“onSelect”传递。这是JSFIddle

    【讨论】:

    • 我从来没有在反应中看到 $ 符号......无论如何我们可以避免facebook.github.io/react/docs/react-api.html
    • 你在其他地方改过也能告诉我这一行的原因 onSelect = this.onSelect;
    • 您可以从父级传递 onSelect 和 Selected 值,并通过 React 组件上下文 Docs 传递它们。我添加了 onSelect 引用,只是检查以确保在我发现道具名称更改之前维护范围,您可以将其设置回直接设置,它会正常工作。
    • 无论如何我们可以删除$符号
    • 是的,我编辑了我的答案并提供了另一个 JSFiddle。您只需要删除您在 cloneElement 中创建的属性键上的下划线。
    猜你喜欢
    • 2020-06-04
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 1970-01-01
    • 2023-02-10
    • 1970-01-01
    相关资源
    最近更新 更多