Ошибка в первом теге p говорит вам, что именно происходит. Доступ к свойству «undefined» нарушит работу javascript / реагирует.
Вы, вероятно, не имеете ожидаемых данных в состоянии, чтобы проверить, что я говорю, просто отладьте с помощью console.log (this.state) в вашем рендере:
render() {
console.log(this.state); // probably has this.state.recipes empty array at first render
...
this возможно, это произошло из-за того, что ваше состояние заполняется асинхронным вызовом API. Рендер будет вызван первым до того, как ваш асинхронный запрос от API будет разрешен (что означает, к сожалению, что у вас еще нет данных ..recipes [0] в вашем состоянии)
Я полагаю, у вас есть это в вашем componentDidMount:
componentDidMount() {
ThirdParty.fetchRecipes().then(data => {
this.setState({ recipes: data.recipes }); // after setState react calls render again. This time your p tag should work.
})
...
Если у вас более новая версия реагирования, я бы рекомендовал использовать необязательную цепочку , потому что интересующее вас свойство глубоко вложено: Как обрабатывать вызовы функции для данных, которые могут быть неопределенными?
{this.state?.recipes?.[0]?.title}
Еще один эффективный способ, но слишком многословный:
const title =
this.state &&
this.state.recipes &&
this.state.recipes.length &&
this.state.recipes[0].title
? this.state.recipes[0].title
: "";
render() {return ({title}
)}
Цвет brightwhite
взгляды хорошо на моем Emacs (который работает под терминалом, не X). На RHEL5 у меня есть мой TERM
набор переменной среды к xterm-256color
. Если это работает правильно, необходимо смочь запустить эти скрипты и видеть 256 выводов цвета. Под Emacs необходимо видеть довольно гладкую шкалу цветов (никакие очевидно дублирующиеся цвета), когда Вы делаете M-x list-colors-display
. В противном случае Вы, вероятно, пропускаете право termcap, запись (попытайтесь установить libtermcap-devel
пакет, я думаю).
Если я изменяюсь TERM
кому: xterm-color
, затем brightwhite
выходит немного серый в выводе list-colors-display
.
Я не уверен в RHEL4.
Что относительно:
(set-foreground-color "brightwhite")
В ответ на комментарий:
В emacs, выполненном M-x list-colors-display
который должен показать Вам все цвета, что emacs думает, доступны с Вашим терминалом.
Похож Вы только выбираете основной цвет.
(set-foreground-color "white")
(set-foreground-color "black")
Я уверен, что Вы имели в виду set-background-color
на последнем.
Я могу подтвердить это при выполнении Emacs как:
$ emacs -nw -bg black -fg white
также.
Что, если Вы просто использовали обратное видео для консольной версии, то, что достаточно хорошо?
$ emacs -nw -rv
Я сделал некоторые эксперименты, и можно установить консоль, раскрашивает emacs, но Вы ограничены этой палитрой:
black blue
cyan green
magenta red
white yellow
Белый, которого Вы получаете, несколько grayed; полный яркий белый резервируется для полужирного текста. Таким образом, если Вы работаете
M-x facemenu-set-bold
Вы станете полужирными (яркий белый) текст для более поздних вставок.
У меня не было удачи при попытке вызвать поверхность по умолчанию к полужирному. (Я действительно не понимаю, как поверхности работают в emacs.)