Задержка оценки для форматирования строки - PullRequest
0 голосов
/ 13 октября 2018

Я создаю файл constants.js с URL-адресами, используемыми в моем проекте ReactJS.Эти строки включают параметры запроса, которые можно использовать с URL.Однако значения, используемые в этих строках, доступны только в компоненте, в котором используется строка, а не в самом файле констант.Так, например, я хочу что-то вроде этого:

export const BASE_URL = 'https://example.com';
export const FOO_QUERY = '?foo=%s';

, где %s это просто заполнитель, который может быть заменен позже в компоненте.(Я заимствовал синтаксис printf() у C здесь для иллюстрации.) Каков правильный синтаксис, чтобы сделать что-то подобное в JavaScript?Это вообще возможно?

Ответы [ 3 ]

0 голосов
/ 13 октября 2018

С помеченными литералами шаблона вы можете сделать:

 function query(parts, ...pos) {
   return apply(...args) {
     return parts.map((part, i) => part + args[ pos[i] ]).join("");
   }
}

Используется как:

 const find = query`?name=${0}&fullname=${0}&age=${1}`;

 console.log(find("jonas", 18));
0 голосов
/ 13 октября 2018

let string = 'bar';
console.log("Foo %s", string);
var teststr = (string) => `Foo ${string}`; //result: Foo bar
0 голосов
/ 13 октября 2018

Я бы, вероятно, использовал шаблонный литерал в функции: компонент вызывает функцию со значением foo:

export const fooQuery = foo => `?foo=${foo}`;

Использование:

const query = fooQuery("foo value");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...