reactjs - 如何将 UUID 替换为带有输入框的字符串?
问题描述
所以我正在尝试学习 reactJS 并被困在一个地方。
在下面的代码中:
import React from "react";
import { v1 as uuid } from "uuid";
const CreateRoom = (props) => {
function create() {
const id = uuid();
props.history.push(`/room/${id}`);
console.log(id);
}
return ([
<button onClick={create}>Create room</button>
]);
};
export default CreateRoom;
我得到一个基本按钮,它正在创建一个带有随机 url 的房间。(如 UUID)
如何插入一个文本框(输入),用户可以在其中输入房间名称。我通过创建一个名为id.js
并创建一个新文件来尝试常规方法,ID function
但无济于事。
我究竟做错了什么?您可以访问https://vidci-vid.herokuapp.com/查看此用例
解决方案
一种方法是创建一个局部状态变量并将输入分配给该变量,如下所示:
var [Text, getInput] = useState(''); // declaring state variable
// assigning input to that state
<TextField
value={Text}
onChange={e => getInput(e.target.value)}
/>
<ButtonBase
onClick={create}
>Create Room
</ButtonBase>
如果你想在提交后清除 UI 中的输入,只要在你的输入处理函数中这样做,一旦你的输入处理完成:
getInput('')
推荐阅读
- angular-ui-grid - ui.grid 在 gridApi 上使用 $scope 在 $scope 上遇到错误未定义
- owl - 将时间本体与传感器数据结合使用
- sql-server - 带有 foreach 的 SQL Server 存储过程
- kubernetes - 在 DCOS 1.11 上使用 Apache Flink 和 Kubernetes 进行欺诈检测
- php - 是否可以将正则表达式捕获组作为变量?
- java - 如何打印XML中前十个数据的列表
- python - 如果它是在多个级别上的,我如何批量从 ElasticSearch 中获取信息?
- angular - 如何获取在 Angular 5 客户端显示的 pdf 应用程序中填充的数据?
- google-apps-script - 调用 saveAndClose 后如何重新打开活动文档?
- java - 为什么即使我的程序没有创建任何新对象,堆利用率也会随着时间的推移而增加?