Задержка оценки для форматирования строки

1

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

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

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

Теги:
string
formatting

3 ответа

4

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

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

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

const query = fooQuery("foo value");
1

С помощью меток-шаблонов вы можете:

 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

let string = 'bar';
console.log("Foo %s", string);
var teststr = (string) => 'Foo ${string}'; //result: Foo bar
  • 0
    Я хочу иметь возможность использовать отформатированный результат в виде строки, либо назначить его переменной, либо использовать в вызове функции.
  • 0
    Тогда, вероятно, ответ толпы будет полезен.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню