簡體   English   中英

如何從多個輸入中獲取數據並將其放入localStorage? 反應

[英]How to get data from multiple inputs and put it to the localStorage? React

class Register extends Component{
    constructor(props) {
        super(props);
        this.submit = this.submit.bind(this);
    }

    submit(event) {
    let username = document.getElementById('username');
    let usernameValue = username.value;
    localStorage.setItem('username', usernameValue);
    }
    render(){
          return(
            <div className="register-block">
                <h4>Register</h4>
                <div className="register-block">
                    <InputGroup>
                        <Input id="username" placeholder="username" />
                        <Input id="password" placeholder="password" />
                        <Input id="tel" placeholder="tel number" />
                    </InputGroup>
                </div>
                <Button color="primary" onClick ={this.submit}>Register</Button>
            </div>
        )
    }
}

//此時,我只能輸入id =“ username”中的數據。 如何從其他輸入中獲取數據並將其存儲在localStorage中? 它的教育項目

您可以執行以下操作:

let username = document.getElementById('username').value;
let password = document.getElementById('password').value;
let phone = document.getElementById('tel').value;

let data = [];
data['username'] = username;
data['password '] = password;
data['phone '] = phone;

localStorage.setItem('userdata', JSON.stringify(data));

// To retrieve data try this
data = JSON.parse(localStorage.getItem('userdata'));

首先,在react中直接與DOM節點進行交互不是一個好主意。 其次,您可以控制所有輸入,並在提交時將數據推送到localStorage ,例如

class Register extends Component{
    constructor(props) {
        super(props);
        this.submit = this.submit.bind(this);
        this.state={
           username: '',
           password: '',
           tel: ''
        }
    }

    handleChange = (key, val) => {
      this.setState({[key]: val})
    }

    submit(event) {

      localStorage.setItem('registerData', JSON.stringify(this.state));
    }
    render(){
          return(
            <div className="register-block">
                <h4>Register</h4>
                <div className="register-block">
                    <InputGroup>
                        <Input id="username" placeholder="username" onChange={(val) => this.handleChange('username', val)} />
                        <Input id="password" placeholder="password" onChange={(val) => this.handleChange('password', val)}/>
                        <Input id="tel" placeholder="tel number" onChange={(val) => this.handleChange('tel', val)} />
                    </InputGroup>
                </div>
                <Button color="primary" onClick ={this.submit}>Register</Button>
            </div>
        )
    }
}

假設您的Input是一個自定義組件,那么您還必須研究How to pass data from child to parent component 還要檢查Controlled Vs UnControlled Components in React

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM