Как объединить код numari c и строку внутри значения TextInput с помощью React Native - PullRequest
0 голосов
/ 14 июля 2020

Есть две переменные, например.

this.state={Amount=50, CurrencySymbol="₹"}

TextInput Render

<TextInput value={this.state.CurrencySymbol + " " + this.state.Amount.toString()} editable={false}></TextInput>

, но символ валюты не отображается.

Есть ли способ распечатать символ валюты динамически внутри TextInput

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Использование состояния в том виде, в каком вы его используете, устарело, вам следует использовать хук useState() для определения состояния и его функции установки.

Обновите это

import React,{ useState } from 'react';

//Set State Variables

const [amount,setAmount] = useState(50);
const [currencySymbol,setcurrencySymbol] = useState("&#x20B9;");

//Set value of text input to your state variable values

<TextInput value={currencySymbol + amount.toString()} editable={false} />
0 голосов
/ 14 июля 2020

Вы неправильно назначаете значения состояния. Это должно быть примерно так:

this.state = {
  Amount: 50,
  CurrencySymbol: "\u0024"
}
  • \u20B9 используется для рупии.
  • \u0024 используется для доллара.

И там в ваших штатах нет штата с именем TAmount. Вы написали this.state.TAmount.toString(). Это должно быть this.state.Amount.toString().

<TextInput value={this.state.CurrencySymbol + " " + this.state.Amount.toString()} editable={false}></TextInput>

Обновление

Поскольку у вас HTML символов валюты, вы можете сохранить это таким образом в своем состоянии :

this.state = {
  Amount: 50,
  CurrencySymbol: "&#x20B9;",
  CurrencySymbols: {
    "&#x20B9;": "\u20B9",
    "&#x20AC;": "\u20AC",
    "&#x0024;": "\u0024"
  }
}

// Then use it on like this
<TextInput value={this.state.CurrencySymbols[this.state.CurrencySymbol] + " " + this.state.Amount.toString()} editable={false}></TextInput>

Думаю, это самый простой способ решить вашу проблему.

Вы не можете использовать символы HTML like в react native, кроме react-native-webview .

Вот и все.

...