2016-09-18 6 views
1

Я новичок в JS и React, и я работаю над проектом для bootcamp. Я сотрудничаю с чат-приложением, и мне нужно понять, как заменить строки переменной для очистки кода. Вот что я работаю над:Использование переменной вместо строки

import React from 'react'; 

const Form = React.createClass({ 

    submit(e) { 
    e.preventDefault(); 
    this.props.messagesRef.push({ 
     text: this.refs.text.value, 
     time: Date.now(), 
     user: { 
     displayName: this.props.user.displayName, 
     photoURL: this.props.user.photoURL, 
     uid: this.props.user.uid, 
     }, 
    }); 
    this.refs.text.value = ''; 
    }, 

    render() { 
    return (
     <form className="form" onSubmit={this.submit}> 
    <input className="form-input" placeholder="Write  something…" ref="text"/> 
     <button className="form-button">Send</button> 
     </form> 
    ); 
    } 
}); 
export default Form; 

Я хотел бы заменить this.refs.text.value с переменным, так что я могу очистить код, но я не совсем уверен, как это сделать. Любая помощь будет принята с благодарностью

+0

В чем проблема с 'this.ref.text.value'? – Li357

+0

нет проблем с этим, я просто хочу узнать, как заменить его переменной –

+0

Вы имеете в виду вот так: 'var val = this.ref.text.value;'? А затем: 'text: val' – Li357

ответ

0

Вы можете просто использовать переменную для хранения значения и использовать его вместо this.refs.text.value:

submit(e) { 
    e.preventDefault(); 
    var val = this.refs.text.value; 

    this.props.messagesRef.push({ 
    text: val, //notice the use of val 
    time: Date.now(), 
    user: { 
     displayName: this.props.user.displayName, 
     photoURL: this.props.user.photoURL, 
     uid: this.props.user.uid, 
    }, 
    }); 
    this.refs.text.value = ''; //do not use val here! 
}, 

Это просто использует вместо this.refs.text.value переменной val, хотя я бы не рекомендую, потому что он не обязательно составляет код очиститель. Удостоверьтесь, что не изменитьthis.refs.text.value = '';, потому что если вы это сделаете, вы переназначаете неверную ссылку.

+0

Очень ценим Andrew! –

+0

Без проблем @TylerSchmidt, если бы я помог, пожалуйста, подумайте о принятии ответа :) – Li357

Смежные вопросы