javascript - 在 ReactJS 中从组件状态传递样式
问题描述
我有以下组件:
import React from "react";
import { connect } from "react-redux";
class Filter extends React.Component {
state = {
value: ''
};
handleChange = (e) => {
let value = e.target.value;
if(value){
document.getElementById("clear").style["display"] = "none";
document.getElementById("fetch").style["display"] = "none";
} else {
document.getElementById("clear").style["display"] = "inline-block";
document.getElementById("fetch").style["display"] = "inline-block";
}
this.setState({ value });
this.props.handleFilter({ value });
}
render(){
let content = this.props.items > 0 ? (
<div
className="filter"
>
<input
id="search-input"
type="text"
placeholder="Search..."
value={this.state.value}
onChange={this.handleChange}
/>
</div>
) : <div></div>
return content;
}
}
const mapStateToProps = (state,props) => ({
items: state.settings.length
});
module.exports = connect(mapStateToProps, null)(Filter);
有没有办法可以更优雅地将道具传递给 clear 和 fetch 组件?我正在尝试根据与我的搜索输入的交互来设置它们的样式(基本上,我希望能够在我的搜索值为“”时设置它们的样式)。如何根据当前组件的状态将样式作为道具发送?
解决方案
请 react-jss 正是您要搜索的内容:请在下面找到示例:
import React, {
Component
} from 'react'
import injectSheet from 'react-jss'
import classNames from 'classnames'
class someComponent extends Component {
handleClose = () => {}
render() {
const {
classes,
} = this.props
return ( <
div className = {
classes.resize
} >
<
/div>
)
}
}
const styles = {
container: {
width: '100%',
height: '100rem'
borderBottom: '10px'
}
}
export default injectSheet(styles)(someComponent)
推荐阅读
- openvas - 使用带有过滤器的 omp xml 命令从 openvas 获取单个报告
- python - 如何在 Python 中基于现有列创建新列
- powershell - 将对象从一个脚本传递到另一个
- python - 如何在 TensorFlow 中高效地实现这个简单的结构
- powershell - Powershell 正在输出一个无法运行的批处理文件
- apache-beam - 在 DoFn 中访问管道
- jython - 如何在 Sikuli 中指定没有绝对路径的目录
- c# - 如何在使用 C# 标记的构建输出中像往常一样引用文件?
- javascript - 原型中的“this”指的是什么?
- html - 悬停在链接上时,希望将链接向左移动而不移动边框