Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >更改用户名

更改用户名
EN

Stack Overflow用户
提问于 2019-11-26 10:42:02
回答 4查看 3.9K关注 0票数 1

我正在做一项工作来练习react,这就是任务-- 更改用户名

的解释是:

此应用程序应允许用户通过输入自定义值并单击按钮来更新其用户名。

用户名组件已经完成,不应该更改,但是App组件缺少部件。完成App组件,以便在单击按钮时用户名组件显示输入的文本。

App组件应该使用React.useRef钩子将输入传递给输入元素和用户名组件的用户名组件。

例如,如果用户输入一个新的用户名"John“并单击按钮,则id root的div元素应该如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div><button>Change Username</button><input type="text"><h1>John Doe</h1></div>

这是给出的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Username extends React.Component {
  state = { value: "" };

  changeValue(value) {
    this.setState({ value });
  }

  render() {
    const { value } = this.state;
    return <h1>{value}</h1>;
  }
}

function App() {
  function clickHandler() {}

  return (
    <div>
      <button onClick={clickHandler}>Change Username</button>
      <input type="text" />
      <Username />
    </div>
  );
}

document.body.innerHTML = "<div id='root'></div>";
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

我试过很多次去了解如何解决这个问题,但是我无法解决这个问题,如何解决这个问题?

EN

回答 4

Stack Overflow用户

发布于 2019-11-26 10:58:01

刚刚发现了。似乎你需要用裁判来做任何事。任何州或任何东西都不准!请注意,您不应该在现实世界的应用程序中这样做:)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function App() {
  const ref = React.useRef()
  const inputRef = React.useRef()

  function clickHandler() {
    ref.current.changeValue(inputRef.current.value)
  }


  return (
    <div>
      <button onClick={clickHandler}>Change Username</button>
      <input type="text" ref={inputRef}  />
      <Username ref={ref} />
    </div>
  );
}
票数 6
EN

Stack Overflow用户

发布于 2019-11-26 11:23:22

这行得通

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React from 'react'
import ReactDOM from 'react-dom'

class Username extends React.Component {
  constructor(props){
    super(props);
    this.state = {value: ""};
  }

  changeValue(value) {
    this.setState({value: value});
  }

  render() {
    const value = this.state.value;
    return <h1>{value}</h1>;
  }
}

class App extends React.Component {
    constructor(props) {
        super(props);
        this.userNameRef = React.createRef();
    }

  clickHandler() {
    var name = document.getElementById('name_input').value;
    this.userNameRef.current.setState({value: name});
  }

  render() {
    return (
      <div>
        <button onClick={this.clickHandler.bind(this)}>Change Username</button>
        <input id="name_input" type="text" />
        <Username ref={this.userNameRef} />
      </div>
    );
  }
}

ReactDOM.render(<App />, document.getElementById("root"));

一定要理解代码,不要像我一样,忘记了bind方法:-)

票数 0
EN

Stack Overflow用户

发布于 2020-09-15 19:21:47

在现实世界中,你可能会做这样的事情:-

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React, { useRef } from "react";
import ReactDOM from "react-dom";

class Username extends React.Component {
  state = { value: "" };

  changeValue(value) {
    this.setState({ value });
  }

  render() {
    const { value } = this.state;
    return <h1>{value}</h1>;
  }
}

function App() {
  const myRef = useRef();
  function clickHandler() {
    document.querySelector("h1").innerHTML = myRef.current.value;
  }

  return (
    <div>
      <button onClick={clickHandler}>Change Username</button>
      <input type="text" ref={myRef} />
      <Username />
    </div>
  );
}

document.body.innerHTML = "<div id='root'></div>";
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

document.querySelector("input").value = "John Doe";
document.querySelector("button").click();
setTimeout(() => console.log(document.getElementById("root").innerHTML));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59057495

复制
相关文章
Ubuntu更改密码和用户名步骤
Ubuntu是一个Linux操作系统,修改密码和用户名是有危险的动作,请谨慎修改。
葆宁
2019/04/18
74.6K2
Ubuntu更改密码和用户名步骤
Matlab更改计算机用户名[通俗易懂]
Matlab在安装的时候需要填写本地计算机的用户名,会和它的激活Licence绑定,我使用的是校园版 。 如果安装好之后更改了自己的计算机用户名,通常是Administrator;就会导致Matlab打开报错,
全栈程序员站长
2022/11/04
2K0
Linux系统怎么修改用户名_怎么更改微软用户名
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/02
6.7K0
Linux系统怎么修改用户名_怎么更改微软用户名
计算机用户名,账户名更改
计算机用户名, win r 按键同时,输入netplwiz. 进入用户账户界面 (高级), 双击即可更改
全栈程序员站长
2022/11/04
8360
linux下更改用户名和主机名
这个文件中的内容是用来显示主机名字的,修改这个文件后,如果立刻重启,我们会看到终端中@后面的主机名将变为bbb
ydymz
2021/01/05
3.2K0
linux下更改用户名和主机名
git 修改用户名以及邮箱_163怎么更改账号
最近在提交代码时发现用户名和邮箱很长,感觉很奇怪,于是通过Git命令修改了一下用户名,用户名截图如下:
全栈程序员站长
2022/10/04
1.4K0
git 修改用户名以及邮箱_163怎么更改账号
linux命令行修改用户名_linux 更改用户密码
一、《Linux的chmod命令》。在 shell 中,可以使用chown命令来改变文件所有者及用户组,chgrp命令来改变文件所在用户组。在 Linux的C程序中,可以使用chown函数来改变文件所有者,及所在用户组。
全栈程序员站长
2022/09/30
5.6K0
git更改用户名邮箱_公司给了个git账号怎么配置
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/04
1.1K0
windows11修改用户名_win10家庭中文版怎么更改用户名
按: 新买的电脑一般预装Windows11系统(家庭与学生版),新电脑初次开机使用微软邮箱账号登录,则系统将用户名自动设置成邮箱前5位字符。我的用户名便是一串数字【231xx】(qq邮箱前5位),看着很不舒服,查了很多方法并最终修改成功!!记录一下修改过程,希望能帮到同样想改用户名的人。
全栈程序员站长
2022/11/04
2.9K0
windows11修改用户名_win10家庭中文版怎么更改用户名
Win10修改管理员用户名(注册表深度完全修改&&更改c盘下的用户名)
很多朋友买了电脑迫不及待的给自己电脑弄了个123213这样的名字,很丑。还有的朋友用的中文的名字比如风骨散人张导致了后期装一些软件不能使用中文路径,还有的更是加入了emoji导致cmd的界面爆炸,很多
风骨散人Chiam
2020/10/28
11.3K3
win10更改c盘下的用户名(家庭版/企业版)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/j_bleach/article/details/75449161
j_bleach
2019/07/02
3.1K0
win10更改c盘下的用户名(家庭版/企业版)
字体更改
其中@font-face相当于创建一个字体族,然后下边body部分是在应用字体族,那个名字其实就是在前边创建的字体的名字。 通过在网络上的查找,我首先选择使用的是Robot字体,这个字体族写的英文字体相当漂亮:
爱编程的小明
2022/09/06
3.6K0
字体更改
修改用户名Linux_Linux用户名
1. 我们在root权限下,使用命令: usermod -l new_user_name old_user_name 即可更改用户名。 usermod的具体用法可以通过usermod –help查看。
全栈程序员站长
2022/10/01
5.7K0
更改源
System Settings –> Software & Updates –> Ubuntu Software –> Download from –> Other.. –> China –> Select Best Sever
JNingWei
2018/09/28
2K0
git查看用户名和修改用户名「建议收藏」
在和同事共同完成一个项目时,上传代码,用户名就得注意下,不然搞个昵称,都不知道是谁上传的
全栈程序员站长
2022/08/03
2.9K0
更改nginx默认端口_更改端口号
Tips:Windows系统用记事本打开会使utf-8文件头部加上BOM头,这会导致配置文件不能正常读取,Nginx启动失败。因此推荐使用Sublime Text3之类的编辑器打开。
全栈程序员站长
2022/10/04
8.8K0
更改nginx默认端口_更改端口号
用户名枚举漏洞
在应用系统登录的过程中,当输入错误的用户名信息时,应用程序将反馈相应的诸如“用户不存在”的错误提示,攻击者可通过该提示为依据对用户名进行枚举,猜解出已存在于应用系统的用户名信息,最终攻击者再对已有用户的密码进一步猜解,从而降低暴力破解的成本。
LuckySec
2023/01/30
4.6K0
Git 撤销更改
正常提交过程有三个步骤四个区和五种状态,下面就分别从这些入手,来看下 Git 撤销更改的方法。
用户1065635
2019/11/28
2.2K0
Windows设置用户名密码Windows修改用户名密码步骤
首次登陆请及时修改服务器密码:右击“我的电脑”—— 选择 “管理”—— 选择“本地用户和组”——单击“用户” ,右侧可以看到默认的系统帐号“Administrator” ——右健点击“设置密码” 来设置您自己的密码。如下图1、图2:
chenzhouliyan
2019/08/06
7.8K0
ORACLE 更改username
曾经一直常常改动oracle的用户password,但非常少改动username的。
全栈程序员站长
2022/08/27
8920

相似问题

更改Git用户名

21

更改git用户名

22

更改git用户名

22

更改github用户名后,无法更改Gerrit上的用户名

114

更改时验证用户名

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文