Строка, содержащая «% d», преобразуемая в «NaN» - PullRequest
0 голосов
/ 26 мая 2018

Я рендеринг ZingChart внутри собственного реагирующего веб-просмотра.Мне нужно получить доступ к токену zingchart, используя %data-day, но всякий раз, когда я пытаюсь использовать %d, он печатает NaN

Ниже приведен пример кода:

import React, { Component } from 'react';
import { Text, View, WebView } from 'react-native';

export default class App extends Component {
  constructor(props) {
    super(props);
  }
  renderWeb = () => {
    return `
      <html>
        <head>
        </head>
        <body>
        <script>
          ${console.log('%d', ':data')}
          </script>
        </body>
      </html>
      `;
  };
  render() {
    return (
      <View style={{ flex: 1 }}>
        <WebView source={{ html: this.renderWeb() }} />
      </View>
    );
  }
}

Может кто-нибудь помочь мне, пожалуйстаразрешить это?

1 Ответ

0 голосов
/ 26 мая 2018

Первый аргумент console.log обрабатывается как строка формата, в которой процентные символы представляют последовательности замещения.Они свободно основаны на строках формата, используемых функцией printf в C. См. Раздел «Использование подстановок строк» ​​в статье консоли MDN .

%d использует следующий неиспользованный аргумент вызова для console.log и форматирует его как число.Поскольку ':data' не является числом, Chrome преобразует его в строку «NAN» в журнале при тестировании в браузере.Однако это зависит от браузера - Firefox преобразует его в ноль.

Чтобы записать в строку «% d», удвойте знак процента и закодируйте его как «%% d» в строке формата.Так же, как в C: -)

...