reactjs - 使用 Reactjs 转换为大写并设置为 Textarea 值
问题描述
我写了一个程序,它有一个 Textarea 用户输入文本,然后单击按钮。我想将 textarea 文本替换为大写。
而且,我希望在同一个文本区域中输出。
我写了这个,但它没有在 textarea 中设置转换后的文本。当我使用 console.log 检查时,它运行良好。
我不知道如何将转换后的文本设置为 textarea。
我正在使用这个包(https://www.npmjs.com/package/text-case)进行文本大小写转换。我打算添加小写字母和其他字母。这就是为什么。
import React, { Component } from "react";
import { Container, Card, Button,ButtonGroup, ButtonToolbar} from "react-bootstrap";
import { Link } from "react-router-dom";
import { upperCase } from "text-case"; //https://www.npmjs.com/package/text-case
class textCase extends Component {
state = {
input: "",
};
render() {
return (
<>
<div className="App">
<Container container-lg>
<div class="services-grid">
<div class="text-case">
<Card>
<Card.Header>Paste your text below</Card.Header>
<textarea
rows={15}
onChange={(e) => {
this.setState({
input: e.target.value,
});
}}
></textarea>
</Card>
<p>{this.state.output}</p>
<ButtonToolbar aria-label="Toolbar with button groups">
<ButtonGroup className="me-2" aria-label="First group">
<Button onClick={this.convertTextToUpperCase}>
Uppercase
</Button>
</ButtonGroup>
</ButtonToolbar>
</div>
</div>
</Container>
</div>
</>
);
}
convertTextToUpperCase = () => {
this.state.output = upperCase(this.state.input);
};
}
export default textCase;
解决方案
我们可以做一个简单的修改来做你想要的。
首先,在 React 组件中,在方法之前编写自定义方法是一种惯例render
,我建议按此convertTextToUpperCase
顺序移动。
要修复您拥有的流程:
convertTextToUpperCase = () => {
this.setState((currentState) => ({
...currentState,
input: upperCase(currentState.input),
}));
};
上述更改包括使用setState
负责更改 React 组件状态的方法。
阅读:setState 做什么?
此外,您仍然可以使用 JS 字符串.toUpperCase
或任何字符串.toLowerCase
。
如:
let firstName = "kolay";
firstName = firstName.toUpperCase();
console.log(firstName);
// output: KOLAY
firstName = firstName.toLowerCase();
// output: kolay
推荐阅读
- perl - 使用 Soap::Lite 将客户端证书发送到 SOAP 服务器
- node.js - 如何在节点 js 中使用 sequelize 搜索多个字段?
- python-3.x - python中的sklearn如何计算.scale_?(它到底是什么算法?)
- c++ - 如何解决一元'*'(有'char')错误的无效类型参数?
- python - 如何用光谱颜色填充 x 轴和曲线之间的空间?
- ios - UITableViewCell auto layout constraint problems due to separator line height
- mongodb - Mongodb,Typegoose - 通用存储库模式
- javascript - 如何在 Rails 6 应用程序中将变量传递给 javascript
- asp.net - ASP.NET 应用程序使用 SAML 实现 AAD SSO
- r - 如何使用 Rcy3 或 R 中的 igraph 包从包含节点和边缘信息的数据框中创建基因共表达网络?