Как я могу заменить строки, которые я получил из массива в реагировать родной - PullRequest
0 голосов
/ 17 апреля 2020

Мне нужно заменить строки на другие строки. Как я могу заменить? Ниже код только изменяет первое сообщение условия if. Мне нужно изменить все сообщения, в которых я нуждаюсь.

Ниже приведены изменения, относящиеся только к папке «Моя сумка содержит книги». «,« У всей сумки есть шары ». Другое, если не работает. (Т.е.) сначала, если работает только а другие нет.

код:

renderMessages() {
  if (message.length > 2) {
     return (<Text>Available all sports items</Text>
  } else {
    return (
      this.state.validation.messages.map((msg) => {
        if (msg.indexOf('My bag contains books' > -1)) {
          let messagess = msg.replace("My bag contains books.", "All the bag have balls")
          return <Text style={{ fontSize: 13, color: 'red', marginBottom: 10, marginTop: 0 }}>{messagess}</Text>
        }
        if (msg.indexOf('My badminton bat' > -1)) {
          let messagess = msg.replace("My badminton bat", "Our basket balls")
          return <Text style={{ fontSize: 13, color: 'red', marginBottom: 10, marginTop: 0 }}>{messagess}</Text>
        }
        if (msg.indexOf('I have ball point pen' > -1)) {
          let messagess = msg.replace("I have ball point pen", "My pencils are in my bag")
          return <Text style={{ fontSize: 13, color: 'red', marginBottom: 10, marginTop: 0 }}>{messagess}</Text>
        } else {
          return (
            <Text style={{ fontSize: 13, color: 'red', marginBottom: 10, marginTop: 0 }}>
              {msg}
            </Text>
        }
      })
    )
  }
}

1 Ответ

1 голос
/ 17 апреля 2020

В вашем коде есть две ошибки (как первоначально опубликовано):

  1. Скобки не вписываются в все условий вашего соответствия:

    if (msg.indexOf('My bag contains books' > 0))
    

    должно быть:

    if (msg.indexOf('My bag contains books') > 0)
    
  2. В тех же условиях совпадения у вас есть недостаток логики c "off-by-one". Это должно быть

    if (msg.indexOf('My bag contains books') > -1)
    

    , потому что строковые индексы в Javascript, как и индексы массивов, начинаются с 0. String.indexOf возвращает -1, если совпадений нет. > 0 имеет смысл, только если вы хотите игнорировать совпадения в начале строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...