Я хочу передать атрибут style в свой компонент с использованием синтаксиса JSX.
<InputTextWithValidation id = "name"
style = {{width:'100%'}} .../>
Как мне определить в моем компоненте InputTextWithValidation PropTypes? Я пробовал либо как объект, либо как строку, например.
InputTextWithValidation.propTypes = {
style:PropTypes.object, ...
}
но результат был таким же: Предупреждение на консоли Chrome:
Failed prop type: Invalid prop `style` of type `object` supplied to `InputTextWithValidation`, expected `string`.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Убедитесь, что вы объявляете опору стиля только один раз. Даже если мне нужно больше кода, чтобы понять, в чем проблема, я решил создать для вас jsfiddle.
Как вы можете видеть, класс Hello отображает InputTextWithValidation с опорой стиля, которая содержит объект:
style = {{width:'100%', background:'red'}}
Проверьте код ниже, вы можете запустить фрагмент кода.
class InputTextWithValidation extends React.Component{
render(){
return(
<input id = {this.props.id} style = {this.props.style}/>
);
}
}
InputTextWithValidation.propTypes = {
style:PropTypes.object
}
class Hello extends React.Component {
render() {
return <div>Hello {this.props.name} <InputTextWithValidation id = "name" style = {{width:'100%', background:'red'}}/></div>;
}
}
ReactDOM.render(
<Hello name = "World" />,
document.getElementById('container')
);<script src = "https://cdnjs.cloudflare.com/ajax/libs/prop-types/15.6.1/prop-types.min.js"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id = "container">
<!-- This element's contents will be replaced with your component. -->
</div>
Спасибо, ваш пример исчерпывающий.