如何从高阶组件引用输入元素

时间:2017-08-09 08:10:41

标签: javascript reactjs callback ref higher-order-components

我想从我的HOC访问输入元素。我怎样才能做到这一点?

const TextInput = (props) => {  
const allowed = ['readOnly','tabIndex','placeholder'];
const filteredProps = filterProps(props,allowed);

    return (
        <div>
            <label>{props.field.Name}</label>
            <input type="text" ref={props.inputRef}   key={props.field.Id} className="form-control" id={props.field.Id} name={props.field.Name}
                value={props.value}
                onChange={props.onChange}
                onKeyDown={props.onKeyDown}
                {...filteredProps}
            />
        </div>
    );
}
TextInput.propTypes = {
    fieldMetadata: PropTypes.object,
    isValid: PropTypes.bool
}
export default withInputMask(withRequired(withReadOnly(withMinMax(withHidden(TextInput)))));

我尝试了一些事情,但这是最新的尝试。 在withInputMask渲染方法中,我插入了以下内容。

            return (
                <div>
                    <Component {...this.props} inputRef={el=> this.inputElement=el} isValid={isValid} onChange={this.onChange} placeholder={inputMaskPattern} />
                    {hasErrors && <span className={hasErrors}>{error}</span>}
                </div>

            );
        }
    }
};
export default withInputMask;

当我打开react dev工具并单击withInputMask组件时,这就是我所看到的。

enter image description here

0 个答案:

没有答案