#reactjs
#reactjs
Вопрос:
Я очень новичок в программировании и начал выполнять упражнения, которые я нашел
Я пытался выполнить это упражнение, но нет, я продолжаю получать эту ошибку, помогите?
Неперехваченная ошибка: Ошибка синтаксического анализа: Строка 16: Значение XJS должно быть либо выражением, либо текстом XJS в кавычках (…)
<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>
<!-- DOCTYPE HTML -->
<html>
<head>
<title>Your First React Project</title>
</head>
<body>
<div id="content"></div>
<script src="https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-xfp1/t39.3284-6/12512166_196876483993243_981414082_n.js"></script>
<script src="https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-xfa1/t39.3284-6/12512184_1664789273772979_614489084_n.js"></script>
<script src="http://dragon.ak.fbcdn.net/hphotos-ak-xfp1/t39.3284-6/10734305_1719965068228170_722481775_n.js"></script>
<script type="text/jsx">
/*Add your React code here*/
var DATA = {
name: 'John Smith',
imgURL: 'http://lorempixel.com/100/100/',
hobbyList: ['coding', 'writing', 'skiing']
};
var App = React.createClass({
render: function(){
return (
<div>
<Profile name=this.props.profileData.name imgURL=this.props.profileData.imgURL/>
<Hobbies hobbyList=this.props.profileData.hobbyList/>
</div>
);
}
});
var Profile = React.createClass({
render: function(){
return(
<div>
<h3> {this.props.name} </h3>
<img src={this.source.imgURL} />
</div>
);
}
});
var Hobbies = React.createClass({
render: function(){
var hobbies = this.props.hobbyList.map(function(hobby,index) {
return (
<div>
<h5>My Hobbies:</h5>
<ul>{hobbies}</ul>
</div>
)
}
);
}
});
ReactDom.render(<App profileData={DATA}/>, document.getElementById('content'));
</script>
</body>
</html>
Ответ №1:
Хорошо, пара вещей:
-
Вы забыли фигурные скобки вокруг некоторых реквизитов. Итак, вместо
<Profile name=this.props.profileData.name />
вы хотите<Profile name={this.props.profileData.name} />
. Это было причиной ошибки, о которой вы упомянули в заголовке этого вопроса. -
Не уверен, почему вы использовали
this.source
в компоненте Profile. Это возвращает значение undefined. Вместо этого используйте prop, который вы уже передали (this.props.imgURL
). -
В компоненте Хобби ваша итерация работает не на 100%. Попробуйте повторить только
<li>
элементы (ваши хобби), а затем поместите их вul
тег ниже.
Я исправил эти части вашего кода и надеюсь, что это поможет. Это всего лишь мелочи, ничего серьезного. Получайте удовольствие!
var DATA = {
name: 'John Smith',
imgURL: 'http://lorempixel.com/100/100/',
hobbyList: ['coding', 'writing', 'skiing']
};
var App = React.createClass({
render: function(){
return (
<div>
<Profile name={this.props.profileData.name} imgURL={this.props.profileData.imgURL}/>
<Hobbies hobbyList={this.props.profileData.hobbyList}/>
</div>
);
}
});
var Profile = React.createClass({
render: function(){
return(
<div>
<h3>{this.props.name}</h3>
<img src={this.props.imgURL} />
</div>
);
}
});
var Hobbies = React.createClass({
render: function(){
var hobbies = this.props.hobbyList.map(function(hobby, index) {
return <li>{hobby}</li>;
});
return (
<div>
<h5>My Hobbies:</h5>
<ul>{hobbies}</ul>
</div>
);
}
});
ReactDOM.render(<App profileData={DATA}/>, document.getElementById('content'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.0/react-dom.min.js"></script>
<div id="content"></div>
Комментарии:
1. Большое спасибо, Фабиан! Я действительно не знаю, откуда я взял источник, и я должен был быть более осведомлен о {}, и хобби внезапно выглядит таким ясным, не должен был пропустить это
2. Рад, что смог помочь. Если мой ответ решил вашу проблему, установите большой флажок, чтобы принять его в качестве ответа.