Код Песочница (по вашему) с решением: https://codesandbox.io/s/81v8p8kmy9
В вашем коде много плохого "React Styling", но по вопросу:
div раздел перемещен из tab-demo.js в RecipeReviewCardList.js
return this.state.comments.length > 0 ? (
<div>
<div>
230 sports | test Export Excel | Export PDF
<CSVLink data={this.state.csv}>Download me</CSVLink>;
<CSVDownload data={this.state.csv} target="_blank" />;
</div>
{listView}
<br />
...
функция getCommentsData теперь выглядит следующим образом:
getCommentsData() {
let comments = [];
let csv = [];
let csvTitle = ["postId", "id", "name", "email", "body"];
fetch("https://jsonplaceholder.typicode.com/comments")
.then(response => response.json())
.then(json => {
csv = json.map(item => [
item.postId,
item.id,
item.name,
item.email,
item.body
]);
csv.unshift(csvTitle);
comments = json;
this.setState({ csv, comments, activeComments: comments.slice(0, 10) });
});
}
И, конечно, csv добавляется в состояния.
Надеюсь, они будут полезны.