#javascript #reactjs
Вопрос:
Я сегментирую код и имею массив объектов, содержащих шаблонные литералы. Когда я перемещаю код в отдельный файл и импортирую его, я получаю ошибку, потому что мой литерал шаблона не определен. Если я определяю его в экспорте, он остается неизменным при импорте. Однако это прекрасно работает, если данные содержатся в самом модуле.
Как мне сделать это правильно?
Экспорт
const name = "temporary" export const my_questions = [ { id: 0, question: `What is ${name}'s favorite animal?`, alternative: [ { answers: "Cat", img: "href" }, { answers: "Dog", img: "href" }, { answers: "Bird", img: "href" }, ] } ] export default { my_questions }
Импорт
import {my_questions} from './data/data_questions' function App(){ const TemplateTest = ({name, my_questions}) =gt; { return ( lt;gt; { my_questions.map(x =gt; lt;pgt;{x.question}lt;/pgt;) } lt;/gt; ) } return ( lt;divgt; lt;TemplateTest name="Rusty" my_questions={my_questions}/gt; // What is temporary's favorite animal? lt;/divgt; ) }
Комментарии:
1. Код в ваших вопросах работает так, как ожидалось. Мы говорим о переезде
const name
в другое место?2. Да, к реквизиту желательно
3. В этом случае вам придется вместо этого использовать функцию.
question: name =gt; `What is ${name}'s favorite animal?`
тогда используйтеx.question(name)
вместо этого.
Ответ №1:
Ответ Криса Джи решил проблему.
export const my_questions = [ { id: 0, question: name =gt; `What is ${name}'s' favorite animal?`, alternative: [ { answers: "Cat", bild: "href" }, { answers: "Dog", bild: "href" }, { answers: "Bird", bild: "href" }, ] } ] export default { my_questions }