Me pregunto si es posible colocar variables en un valor de cadena JSON.
Algún ejemplo: (archivo.json)
{ "type": "description", "description": "${this.name} is ${this.age} years old. ${this.name}'s favorite color is ${this.favColor}" }Luego en Reaccionar:
data = require("file.json); name = "John"; age = 20; favColor = "blue";función de renderizado...
render() { return() { <p>{this.data.description}</p> } }¿Alguna forma de hacer algo como esto? El objetivo es reemplazar las variables automáticamente.
Puede hacer una búsqueda y reemplazo manual de cadenas. Algo como la siguiente respuesta estará bien: https://stackoverflow.com/a/1408373/9150652
Esto podría tener un aspecto similar al siguiente en su componente React:
// Your JSON data as string const json = `{ "type": "description", "description": "{name} is {age} years old. {name}'s favorite color is {favColor}" }` // method to find and replace interpolate values const interpolate = (str, values) => { return str.replace(/{([^{}]*)}/g, (a, b) => { const r = values[b]; return typeof r === 'string' || typeof r === 'number' ? r : a; } ); }; const SomeComponent = () => { const values = { name: 'John', age: 27, favColor: 'red' }; // Interpolate before parsing the JSON! const parsedJson = JSON.parse(interpolate(json, values)); // Now you can use the object with the correct values filled in return <p>{parsedJson.description}</p>; }Si usa componentes de clase, incluso podría intentar pasar
thisen lugar devaluesy usar valores locales, de manera similar a como lo describió en su pregunta
Debería (tal vez) funcionar fuera de la caja también.