如何收集用户输入以在reactjs中检索数据?

时间:2019-11-14 16:06:21

标签: javascript reactjs

我能够获得所有用户,并(通过单击按钮)通过ID获得特定用户。但是我想不出一种从输入中吸引用户的方法。

有人可以建议如何实现吗?

这是我的代码:

import React, {Component} from 'react'

class App extends Component {

    constructor(props){
        super(props)
        this.onHandleUsers = this.onHandleUsers.bind(this)
        this.state = {
            isLoaded: false,
            users: []
        }
    }
    onHandleUsers() {
        fetch("http://localhost:3000/api/users")
        .then(res => res.json())
        .then(result => {
            this.setState({
                isLoaded: true,
                users: result
            })
        })
        .catch(e => console.log(e))
    }

    onHandleCurrentUsers(userId) {
        const data = {userId: userId}
        fetch("http://localhost:3000/api/user", {
            method: 'POST',
            headers: { "Content-Type": "application/json"},
            body: JSON.stringify(data)
        })
        .then(res => res.json())
        .then(result => {
            this.setState({
                isLoaded: false,
                currentUser: result
            })
        })
        .catch(e => console.log(e))
    }




    render() {
        const {currentUser} = this.state
        return (
            <div>

                <button onClick={this.onHandleUsers}>Gauti vartotojus</button>
                <ul>
                    {
                        this.state.isLoaded && this.state.users.map(item => {
                            return (
                                <li>name : {item.name} <br> 
                                </br>surname: {item.surname}</li>
                        )
                        })
                    }

                </ul>
                <button onClick ={e => this.onHandleCurrentUsers(1)}>get first user </button>
                <button onClick ={e => this.onHandleCurrentUsers(2)}>get second user </button>
                <div>
                    {
                        currentUser && <div>{currentUser.name} {currentUser.surname}</div>
                    }
                </div>

                <div>  </div>
        </div>
        )
    }
}

export default App

2 个答案:

答案 0 :(得分:0)

这很简单,您要做的就是输入一个可以处理所需用户ID的输入:

Properties.Count

,我们这样定义this.handleUserChange:

<input name='userId' onChange={this.handleUserChange} />

基本上,您将用户ID传递到我们的输入中,它将更改当前用户!

答案 1 :(得分:0)

您好,这确实很有帮助,但是我已经完成了此操作,与此相关的是它立即使当前用户进入输入状态,我的问题是我必须单击按钮才能获得值。我正在尝试对ref进行与您相同的操作,但是我在输入atm之后无法带回ref。