Хотите 3 строки в моих комментариях области ввода текста вместо одной - PullRequest
0 голосов
/ 21 октября 2019

Использование Bootstrap 4.3.1 с реакции В настоящее время у меня есть это enter image description here

И я хочу добиться этого enter image description here

comments: {
        elementLabel: "Comments",
        elementType: 'textarea',
        elementConfig: {
            placeholder: '',
            name: "comments",
            id: "comments",
            rows: 4
        },
        value: '',
        form_value: "",
        validation: {
        },
        valid: false,
        touched: false,
        isChanged: false,
        errorMessage: "",
        className: "form-control",
        changed: (event) => this.inputChangedHandler(event, "comments"),
        blured: (event) => this.inputBlurHandler(event, "comments")
    },

Пробовал использовать вышеуказанные изменения в комнете, но это не помогает

<div className="form-row mb-3">
                                    <div className="col-md-12">
                                            <Input
                                                {...this.state.comments}
                                            />  </div>
                                </div>

Также это касается компонента My input, где textarea получает рендер.

 case ('textarea'):
        inputElement = (
            <React.Fragment>
                <label>{ReactHtmlParser(props.elementLabel)}</label>
                <textarea
                    {...props.elementConfig}
                    className={inputClass}
                    value={props.value}
                    onChange={props.changed}
                    onBlur={props.blured}
                />
                {
                    invalidClass || props.allowed_characters
                        ?
                        <div className="form-row">
                            <div className={`col-md-10  text-left`}>
                                {invalidClass ? <span className="invalid-feedback">{props.errorMessage}</span> : null}
                            </div>
                            <div className="col-md-2 text-right">
                                {
                                    props.allowed_characters ?
                                        <span className="allowed_characters">{props.current_character_count} / {props.allowed_characters}</span>
                                        : null
                                }
                            </div>
                        </div>
                        :
                        null
                }

            </React.Fragment>
        )

Пробовал проходить внешние scss но это не помогает, что теперь делать?

Ответы [ 4 ]

0 голосов
/ 21 октября 2019

Если вы не хотите использовать текстовую область, вы можете использовать CSS, чтобы сделать ширину и высоту элемента ввода подобными текстовой области.

Хорошей практикой является использование текстовой области только для таких случаев. В React попробуйте передать строки и столбцы следующим образом:

<textarea rows={4} cols={8} />

PS: но это не даст возможности переноса текста на новую строку.

Спасибо

0 голосов
/ 21 октября 2019

Для многострочного ввода, я думаю, вы должны просто использовать

<textarea cols="50" rows="3">Somethine like this &#13;&#10;for&#13;&#10;different lines</textarea>
0 голосов
/ 21 октября 2019

Вы можете достичь желаемой функциональности, используя textarea следующим образом:

enter image description here

0 голосов
/ 21 октября 2019

Я хочу знать, есть ли какая-либо причина, по которой вы не используете textarea, потому что я вижу, что вы используете элемент ввода.

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