Реагируй материалом-интерфейсом TextField с добавлением чисел - PullRequest
0 голосов
/ 20 октября 2019

Как добавить два числовых поля формы вместе?.

Ниже приведены два компонента - Userform и FormUserDetails. Пользовательская форма вводится как простой компонент в app.js. Я предполагаю, что это я не понимаю, где поставить функцию AdditionTest в реакцию. Кроме того, я хотел бы иметь форму по умолчанию в виде строки и при первом взаимодействии преобразовать ее в числа. Это единственный способ не иметь предварительно набранный 0 в числовых формах? Или это какой-то другой способ указать начальное состояние UserForm как числа без фактического ввода числа ?. Кстати, жесткое кодирование чисел в исходное состояние поле суммы работает, как и предполагалось. Наконец, почему id = "standard-read-only-input" не работает с material-ui в этом коде? Заранее спасибо


import React, { Component } from 'react'
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
import AppBar from 'material-ui/AppBar';
import TextField from 'material-ui/TextField';

       render() {
            const { values, handleChange } = this.props;
            function AdditionTest(Num1,Num2){
                Number(Num1);
                Number(Num2);
                return (Num1+Num2);
            }
            return (
               <MuiThemeProvider>
                   <React.Fragment>
                       <AppBar title="Income" />
                       <TextField 
                       hintText="Income One"
                       type="number"
                       step="100"
                       floatingLabelText="Income One"
                       onChange={handleChange('incomeOne')}
                       defaultValue={values.incomeOne}
                       />
                       <br/>
                       <TextField 
                       hintText="income Two"
                       type="number"
                       step="100"
                       floatingLabelText="income Two"
                       onChange={handleChange('incomeTwo')}
                       defaultValue={values.incomeTwo}
                       />
                        <br/>
                       <TextField 
                        id="standard-read-only-input"
                       hintText=""
                       floatingLabelText=""
                       onChange={handleChange('sum')}
                      defaultValue={AdditionTest(values.incomeOne,values.incomeTwo)}      
                       />

                   </React.Fragment>
               </MuiThemeProvider>
            )
        }
    }



    export default FormUserDetails

    -----------------------------------------------------------
    import React, { Component } from 'react'
    import FormUserDetails from './FormUserDetails';

    export class UserForm extends Component {
        state = {
            incomeOne: 0,
            incomeTwo: 0,
            sum: '',
            occupation: '',
            city: '',
            bio: ''
        };

          // Handle fields change
        handleChange = input => e => {
            this.setState({[input]: e.target.value});
        }


        render() {

            const { incomeOne, incomeTwo, sum, occupation, city, bio } = this.state;
            const values = {incomeOne, incomeTwo, sum, occupation, city, bio }

                    return (
                        <FormUserDetails 
                        handleChange={this.handleChange}
                        values={values}
                        />
                    )
        }
    }

    export default UserForm
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...