Я получаю вышеуказанную ошибку в консоли, хотя я правильно возвращаю компонент, который нужно визуализировать. Значение errorTexts = ["email is invalid"]
в следующем кодеReactCompositeComponent.render(): должен быть возвращен действительный ReactComponent. Возможно, вы вернули undefined, массив или какой-либо другой недопустимый объект
if(@state.errorTexts.length>0)
dangerouslySetInnerHTML: {
__html: ReactDOMServer.renderToString(
React.createElement AdminError, errorTexts: @state.errorTexts
)
}
и компонент AdminError содержит следующий фрагмент кода:
#app/assets/javascripts/components/adminerror.js.coffee
@AdminError = React.createClass
getDefaultProps: ->
errorTexts: []
render: ->
for errorText in @props.errorTexts
dom.div
className: 'help-block'
errorText
JS эквивалент этого компонента существа:
(function() {
this.AdminError = React.createClass({
getDefaultProps: function() {
return {
errorTexts: []
};
},
render: function() {
var errorText, i, len, ref, results;
ref = this.props.errorTexts;
results = [];
for (i = 0, len = ref.length; i < len; i++) {
errorText = ref[i];
results.push(dom.div({
className: 'help-block'
}, errorText));
}
return results;
}
});
}).call(this);
Значение результата, возвращаемого из компонента AdminError, отображается на скриншоте ниже, однако я не уверен, что возвращаемый тип возвращаемого объекта приемлемыми или нет, как он находится внутри для цикла:
ОБНОВЛЕНИЕ: изменил код в AdminError компонента, чтобы исправить этот error
#app/assets/javascripts/components/adminerror.js.coffee
@AdminError = React.createClass
getDefaultProps: ->
errorTexts: []
render: ->
dangerouslySetInnerHTML: {
__html: marked((
dom.div null,
for errorText, index in @props.errorTexts
dom.div
key: index
className: 'help-block'
errorText
).toString())
}
и снова получил эту ошибку:
Uncaught Invariant Violation: ReactCompositeComponent.render(): A valid ReactComponent must be returned. You may have returned undefined, an array or some other invalid object.invariant
Это сработало, но теперь появилось другое другое в родительском компоненте, который работал до сих пор: ( – vipin8169
Я только что исправил эти две ошибки, и теперь они снова появились. «Предупреждение: вход является тегом элемента void и не должен иметь дочерних элементов или использовать props.dangerouslySetInnerHTML.warning' ' Uncaught Invariant Violation: объекты недействительны в качестве дочернего элемента React (обнаружено: объект с ключами {dangerouslySetInnerHTML}). Если вы хотите отобразить коллекцию детей, используйте массив или оберните объект с помощью createFragment (object) из надстроек React. – vipin8169