javascript - CSS 转换在转换为 React 代码时不再起作用:
问题描述
我在这里翻译了这段代码:
https://codepen.io/desandro/pen/LmWoWe
<div class="scene scene--card">
<div class="card">
<div class="card__face card__face--front">front</div>
<div class="card__face card__face--back">back</div>
</div>
</div>
<p>Click card to flip.</p>
在这里变成了一个 React 等价物,但它不再起作用。
class TodoApp extends React.Component {
constructor(props) {
super(props)
this.state = {
front: true
}
}
clickHandler = () => {
this.setState((prevState) => {
return {front: !prevState.front};
});
}
render() {
alert('render called: ' + this.state.front)
return (
<div className="scene scene--card" onClick={this.clickHandler}>
<div className={!this.state.front ? 'card' : 'is-flipped'}>
<div className="card__face card__face--front">front</div>
<div className="card__face card__face--back">back</div>
</div>
</div>
)
}
}
ReactDOM.render(<TodoApp />, document.querySelector("#app"))
我验证了状态在 true 和 false 之间切换,但是并使用 Chrome 检查器来验证 className 也正在切换。
但是输出保持不变(它不会在 React 版本中翻转)
解决方案
在您的渲染函数中card
,并且is-flipped
是互斥的,但您的翻转样式的范围为.card.is-flipped
.
将您的卡className
逻辑更新为:
<div className={`card ${!this.state.front && "is-flipped"}`}>
推荐阅读
- java - StartListening() 在 OnBindviewHolder 或 onStart() 方法中不起作用。Android Studio 3.4 版本的问题
- java - 在 Java 中转换 int -> ascii -> int 时遇到问题
- java - 使用 setter 函数及其对象的值打印输出
- javascript - 当某些对象具有该字段而某些对象没有时,如何避免出现“TypeError:无法读取未定义的属性'weekday_text'”错误?
- python - 用语音识别库python拼写字母
- javascript - Window10 basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") ^^^^^^^ SyntaxError: missing ) 在参数列表后的 Webdriverio 错误
- xaml - 根据来自 Web 服务 Xamarin 表单的数据动态显示标签
- c# - 在 asp.net 核心父子表中使用 LinqToXML 创建 XML
- python - 用 pandas 计算前滚平均值
- java - 如何使用 java 在 euc-kr 编码系统中读取 utf8 编码的文件名?