javascript - 动态下拉菜单样式选择器
问题描述
import React, { Component } from "react";
export default class Fonts extends Component{
constructor(props){
super(props);
this.state ={
value: "",
current: "",
};
this.fontHandler = this.fontHandler.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
fontHandler(event){
this.setState({
fontFamily: event.target.current,
current: this.state.onChange
});
}
handleSubmit(event) {
event.preventDefault();
this.setState({ current: this.state.onSubmit });
}
render() {
return(
<div>
<form onSubmit={this.handleSubmit}>
<h1 style={{fontFamily: this.state.current }}>Yuh Yeet</h1>
<select onChange = {this.state.value}>
<option value="Anton">Anton</option>
<option value="Calistoga">Calistoga</option>
<option value="Fira Sans">Fira Sans</option>
<option value="Noto Serif">Noto Serif</option>
<option value="Quicksand">Quicksand</option>
<option value="Ubuntu">Ubuntu</option>
<option value="Times New Roman">Times New Roman</option>
<option value="Titillium Web">Titillium Web</option>
</select>
<button type="submit"> Change </button>
</form>
</div>
)
}
}
我正在尝试通过从我提供的下拉菜单中选择所需的字体来更改 h1 标签的内联样式。我的问题是我选择的字体没有被引入来改变我的风格。我正在将我所有的字体从 Google 字体导入到我的 index.html 中,所以这不是问题。我只是说国家错了还是什么?
解决方案
您的代码有几个问题,select
'onChange
需要指出fontHandler
更新状态以设置current
值:
<select onChange={this.fontHandler}>
// ...
</select>
字体处理程序:
fontHandler(value){
this.setState({
current: value
});
}
无需提交。
推荐阅读
- java - 使用java减少饥饿变量超时
- reactjs - React - 如何从孙子调用父函数
- java - 基于数组 contains 和 orderby 查询 firestore
- css - 在 CSS 中,*:link 和 :link 之间有什么区别吗?
- matplotlib - 如何使用串行向我的 PyQt5 窗口添加实时(更新)图?
- .net - 寻找有关 TeamCity 代理要求中某些语法的说明
- wordpress - 如何将用户评论以 PDF 格式附加到订单
- mysql - 记录未插入 - mySql 节点
- laravel - 使用 laravel 保护移动应用程序的公共 api
- python - 关于 Python For 循环的初学者问题