【问题标题】:I am stuck on this React Testdome question我被困在这个 React Testdome 问题上
【发布时间】:2020-10-27 15:04:34
【问题描述】:

这让我非常恼火——这是来自 TestDome React 的一个问题,我被卡住了——有人可以帮我一把吗?提前致谢! (这是链接:https://www.testdome.com/d/react-js-interview-questions/304) 这是问题:

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

Username 组件已完成,不应更改,但 App 组件缺少部分。完成 App 组件,使用户名组件在按钮被点击时显示输入的文本。

App 组件应该使用 React.useRef Hook 将输入传递给 Username 组件,用于 input 元素和 Username 组件。

例如,如果用户输入了一个新的用户名“John Doe”并点击了按钮,那么 id 为 root 的 div 元素应该如下所示:

<div><button>Change Username</button><input type="text"><h1>John Doe</h1></div>
// React is loaded and is available as React and ReactDOM
// imports should NOT be used
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);

document.querySelector("input").value = "John Doe";
document.querySelector("button").click();
setTimeout(() => console.log(document.getElementById("root").innerHTML));

【问题讨论】:

  • 那么该 sn-p 的哪一部分是测试问题,哪一部分是您的尝试?您也忽略了提及您正在努力解决的问题。

标签: reactjs


【解决方案1】:

将 App 组件更新为这样

function App() {
  let userRef = React.useRef();
  let inputRef = React.useRef('');

  function clickHandler() {
    userRef.current.changeValue(inputRef.current.value);
  }

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

【讨论】:

  • 非常感谢@samhanwar - 我已经有几年没有使用 React(一直在使用 Vue),但需要做一个 React Dome 测试...... :(.
猜你喜欢
  • 2019-08-25
  • 2022-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-02
  • 1970-01-01
  • 2023-03-16
  • 2021-12-11
相关资源
最近更新 更多