Я не уверен, как это написать. У меня есть этот тернарный оператор внутри толстой стрелки. но если не удается выполнить код. У меня нет ошибок с браузером или на консоли, но он просто не печатает заголовки.
Если я опустил {}
и тернарный оператор, он отлично работает.
Что я печатаю неправильно?
<Row className="grid-header">
{
this.props.columnsInfo.map((info) => {
width = (info.colWidth) ? "className={info.colWidth}" : "xs={this.calculateColumnSize()}";
<Col style={{ paddingTop: 10, paddingLeft: 10 }} key={info.header} width>{info.header}</Col>
})
}
</Row>
Вам нужно явно вернуть jsx, если это не весь объект функции жирной стрелки.
Ваш код исправлен:
<Row className="grid-header">
{this.props.columnsInfo.map(info => {
const width = (info.colWidth)? "className={info.colWidth}" : "xs={this.calculateColumnSize()}";
return (<Col style={{paddingTop:10,paddingLeft:10}} key={info.header} width>{info.header}</Col>);
})}
</Row>
Причина, по которой она работает, когда вы удаляете фигурные фигурные скобки и тройной оператор, состоит в том, что когда вы выполняете функцию толстой стрелки без фигурных скобок для тела, она неявно возвращает тело, которое должно быть только одним утверждением. Поскольку вы добавляете второй оператор в тело функции (тройная строка), вам нужно добавить фигурные скобки тела, и теперь там есть фигурные скобки тела, вам нужно написать ключевое слово return
потому что оно больше не подразумевается для вашего jsx линия.
Вы просто забыли возвращение внутри map()
.
Внутри map()
вы возвращаетесь для каждой итерации undefined
и это будет проигнорировано, потому что нет рендеринга для рендеринга.
Когда вы используете fat arrow function
" fat arrow function
с "{}", вы должны явно возвращать ((x) => {return x + x}
) переменную, но без нее неявно возвращается ((x) => x + x
).
<Row className="grid-header">
{
this.props.columnsInfo.map(info => {
const width = info.colWidth
? "className={info.colWidth}"
: "xs={this.calculateColumnSize()}";
return <Col style={{ paddingTop: 10, paddingLeft: 10 }} key={info.header} width>{info.header}</Col>
})
}
</Row>
const width
. Не заметил, когда ответил на главную ошибку. Спасибо..