【发布时间】:2017-11-14 06:11:12
【问题描述】:
我在玩 react 方面有很好的经验。但是今天我遇到了一个非常奇怪的问题。
我有一个汉堡包,它接收一个值列表,并且选择了我通过this.refs.child1.setValues() 从父级发送的值之一。这个setValues 函数调用setState 并且通过react 中的className 参数选择一个值。
所以在第一步中,我从 20 个值中选择第一个值。
react 选项卡显示了关于第一个 li 元素的信息:
className="{something} +class1"
其余所有元素都有:
className="{something}"
这很好。 ('class1' 是在 setstate 上动态添加的类)并且 dom 显示第一个值已选中,其余未选中。
现在问题出在第二步,因为我选择了另一个值,比如第三个,所以第一个值应该被取消选择,第三个应该被选中,第三个的预期反应值应该是
className="{something} + class1" 其余显示className="{something}"
在反应选项卡中工作正常,但在元素选项卡中,两个 li 元素都被选中,因为它们都有 class1,但 class1 应该只与第三个元素一起使用,而不是与第一个元素一起使用(之前已选择)
【问题讨论】:
-
所以问题是反应选项卡和元素选项卡(DOM)与 className 参数不同步
-
你不用“{}”,只用{}
-
把Child组件的相关代码贴出来会更容易理解
-
@DhavalJardosh 先生,这只是一个示例,而不是确切的代码。 :)
标签: javascript reactjs