Я думаю, что вам не хватает 2 вещей - во-первых, у вашего getMappedData
метода нет закрывающей фигурной скобки.Во-вторых, условие if должно возвращать значение:
getMappedData = (dataProp) =>{
if (dataProp) {
return dataProp.map(item =>{
return item;
})
}
else {
return "";
}
}
также, вызов метода должен быть this.getMappedData
, а не this.props.getMappedData
, потому что метод определен в классе и НЕ поступает из реквизита
другая проблема в том, что вы не можете просто вернуть массив из метода getMappedData
, вам нужно вернуть jsx, поэтому, вероятно, он должен выглядеть примерно так:
getMappedData = (dataProp) =>{
if (dataProp) {
return dataProp.map(item =>{
return <div>{item}</div>;
})
}
else {
return "";
}
}
при условии item
- это строка или число.Если это объект или массив, он не будет работать.
также ваш метод рендеринга может просто использовать {this.getMappedData()}
, в нем нет необходимости в подпорке, ваш метод getMappedData
может использовать подпорку:
getMappedData() {
const { dataProp } = this.props;
if (dataProp) {
return dataProp.map(item =>{
return <div>{item}</div>;
})
}
else {
return "";
}
}