фонПередача переменных между компонентами в React.js
Я пытаюсь передать css class
имя в variable
называется styling
к моему className
на tr
элемента. Я думаю, что моя проблема здесь в том, что мне еще предстоит понять концепцию props
.
В принципе у меня есть component
написанный в ES6
, и я хочу, чтобы изменить css class
из tr
на основе стоимости child td
.
Проблема
С моим текущим кодом я получаю
стиль не определен
Но это делает console.log
все нужные css class
так, я знаю, что все это хорошо минус фактическое class
добавлено к className
из тега tr
. По какой-то причине он не пропускает переменную внутри от componentDidMount
до render
.
Вопрос
Пожалуйста, объясните мне, как пройти variables
на протяжении всей моей React.js
component/components
?
Пример
class TableDisplay extends React.Component{
constructor(props) {
super(props);
}
componentDidMount() {
var styling = " ";
var tCells = document.getElementsByTagName("td");
for (var i = 0; i < tCells.length; i++) {
if(tCells[i].innerHTML == "Approved") {
console.log("bg-success");
styling = "bg-success";
} else if (tCells[i].innerHTML == "Denied") {
console.log("bg-danger");
styling = "bg-danger";
} else {
console.log("bg-plain");
styling = "bg-plain";
}
}
}
render() {
return <div><table className="table">
<tr className="seperate"><td>Title</td><td>Status</td><td>Created</td><td>Updated</td><td>Delete</td></tr>
{Object.keys(requests).map(function(key) {
// Problem appears to be here
return <tr className={styling}>
<td>{requests[key].title}</td>
<td>{requests[key].status}</td>
<td>{requests[key].created_at.slice(0, 10)}</td>
<td>{requests[key].updated_at.slice(0, 10)}</td>
<td><a href="">Delete</a></td>
</tr>;
})}
</table>
</div>;
}
}
, что я пытался
я думаю, что это может быть сфера или закрытия проблемы. Поэтому я попробовал.
Global
Создание стилизации глобальной переменной. Это не сработало.
Это
Пытались использовать this.styling. Это тоже не сработало.
перемещена Внутри Рендер
я переехал цикл внутри визуализации. Когда я это сделал, он добавил переменную стиля в className
, но только первое начальное объявление styling = " ";
. Так что в основном это просто сделало каждый tr
пространства для className
.
Используется ли ваш текст «Утвержденный» и «Отказано» от запросов [key] .status или запросов [key] .title? Если это так, вы пытались переместить его внутри функции рендеринга, но сравнивали с этими переменными вместо innerHTML? –
Я попытался переместить его. В нижней части моего вопроса я объясню результат. В принципе, если я удаляю стиль из классаName, он запускает приложение и выводит на консоль все правильные данные. Но когда я перемещаю цикл внутри рендеринга, он просто добавляет пробел в пятне className для каждого тега tr – wuno