validateDOMNesting(...):<span>不能作为<option>的子代出现

时间:2018-08-29 05:47:06

标签: reactjs react-intl

我正在使用react-intl进行内部化。 我收到以下代码的错误validateDOMNesting(...): <span> cannot appear as a child of <option>

我不使用跨度。但是在检查元素时,它会自动跨越。

代码如下:

<select onChange={this.localeChageHandler}>
   <option value="english">
      <FormattedMessage
        id="navigation.header.navbar.english"
        defaultMessage="English"
      />
   </option>
   <option value="hindi">
     <FormattedMessage id="navigation.header.navbar.hindi" defaultMessage="HIndi" />
   </option>
</select>

1 个答案:

答案 0 :(得分:1)

通常FormattedMessage将返回span元素,为了忽略span元素,您必须将选项传递给FormattedMessage中的child prop。

    <select onChange={this.localeChageHandler}>
              <FormattedMessage
                id="navigation.header.navbar.english"
                defaultMessage="English"
                children={
                  (formatedMessage) => <option value="English">{formatedMessage}</option>
                }
              />
          <FormattedMessage
                id="navigation.header.navbar.hindi"
                defaultMessage="HIndi"
                children= {
                  (formatedMessage) => <option value="HIndi">{formatedMessage}</option>
                }
              />
        </select>