如何在React中创建一个文本框

时间:2018-10-21 12:57:34

标签: javascript reactjs web-applications

我已经开始了一个新的Web App React项目。 我想简单地开始,并在给定的React代码中添加一个文本框,但我不知道这样做会很热。 我应该创建一个新组件,然后将其添加到另一个组件吗? 或者,我怎样才能在给定的组件中添加一个简单的文本框?

import React, { Component } from 'react';

export class Home extends Component {
  displayName = Home.name

  render() {
    return (
      <div>
        <h1>Hello world! This is Itay's new Web App</h1>
        <p>Welcome to your new single-page application, built with:</p>
        <ul>
          <li><a href='https://get.asp.net/'>ASP.NET Core</a> and <a href='https://msdn.microsoft.com/en-us/library/67ef8sbd.aspx'>C#</a> for cross-platform server-side code</li>
          <li><a href='https://facebook.github.io/react/'>React</a> for client-side code</li>
          <li><a href='http://getbootstrap.com/'>Bootstrap</a> for layout and styling</li>
        </ul>
        <p>To help you get started, we've also set up:</p>
        <ul>
          <li><strong>Client-side navigation</strong>. For example, click <em>Counter</em> then <em>Back</em> to return here.</li>
          <li><strong>Development server integration</strong>. In development mode, the development server from <code>create-react-app</code> runs in the background automatically, so your client-side resources are dynamically built on demand and the page refreshes when you modify any file.</li>
          <li><strong>Efficient production builds</strong>. In production mode, development-time features are disabled, and your <code>dotnet publish</code> configuration produces minified, efficiently bundled JavaScript files.</li>
        </ul>
        <p>The <code>ClientApp</code> subdirectory is a standard React application based on the <code>create-react-app</code> template. If you open a command prompt in that directory, you can run <code>npm</code> commands such as <code>npm test</code> or <code>npm install</code>.</p>
      </div>
    );
  }
}

我想我应该在render()中添加新的文本框

先谢谢了。

2 个答案:

答案 0 :(得分:1)

您可以在渲染器内部添加文本框,也可以创建一个组件并使用它。 文本框将从状态中读取值,并使用其当前值onChange更新状态。

 render() {
     return (
        <input
            type="text"
            value={this.state.value}
            onChange={this.handleChange}
         />
     );

 }

答案 1 :(得分:0)

您还可以使用material-ui(github上的趋势)进行反应,这是进行反应的最佳UI框架之一。

您可以通过命令安装它:

npm install @ material-ui / core

然后您可以制作如下文本框:

<TextField
  id="first-name"
  label="Name"
  value={this.state.name}
  onChange={this.handleChange('name')}
  margin="normal"
/>