@VeryLongAgoDid
Всё возможно

Как в React вернуть массив, а не элемент?

Сделал компонент который читает файл и преобразует его в массив. Именно массивом я и хочу его передать в другой компонент, пусть это будет App.js.
render() {
	var mass = this.state.text.split('\n');
	console.log(mass);
	return mass;
}

Результат console.log(mass)
(3) ["1", "2", "3"]
0: "1"
1: "2"
2: "3"
length: 3
__proto__: Array(0)


И в файле App.js я хочу получить этот же массив, но возвращается уже как элемент Реакта. Как это можно обойти?
Вот так я получаю данные из компонента
var myTxt = require("./input.txt");
console.log(myTxt);
var mass = <TextFileReader txt={myTxt}/>
console.log("massive:", mass);

Результаты console.log()
/static/media/input.c779c72e.txt
massive: {$$typeof: Symbol(react.element), type: ƒ, key: null, ref: null, props: {…}, …}
  • Вопрос задан
  • 503 просмотра
Пригласить эксперта
Ответы на вопрос 1
hzzzzl
@hzzzzl
как-то так?

// App

state = { mass: [] }

onFileRead = mass => {
  this.setState({ mass: mass })
}

render () {
  // console.log(this.state.mass)
  return <TextFileReader txt={myTxt} onFileRead={this.onFileRead}/>
}


// TextFileReader 

readFile = mass => {
  this.props.onFileRead(mass) 
  // когда будет готов массив, то пусть он прокинется наверх в App
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы