当前位置: 首页 > 知识库问答 >
问题:

使用defaultValue在React中创建选择输入

苗盛
2023-03-14

我遇到了一个奇怪的问题,我不知道是怎么回事。我以前使用完全相同的代码,但现在它的行为不同了。也许我忽略了什么。我想要的:为了我的问题:我想呈现一个有三个选项的选择输入。其中一个选项是“Disabled DefaultValue”选项,它应该是占位符。其他两个选项都有一个值,而select的值是我要传递给它的状态。

所以我将表单呈现为这样的形式(我在这里保持简短,以便有一个干净的外观):

<Form
  is_expenditure={this.state.is_expenditure}
/>
class Form extends React.Component{
  render() {
return (
  <div>
    <form>
      <select value={this.props.is_expenditure}>
        <option disabled defaultValue>Ehne mehne Muh</option>
        <option value="1">Test</option>
        <option value="2">Test 2</option>
      </select>
    </form>
  </div>
)
  }
};

似乎选项中的“禁用”部分将阻止它在呈现时被选中。我很确定这以前是有效的,新的react版本不允许这样做吗?有变通办法吗?我想要的只是有一个带有占位符的选择输入。

共有1个答案

南门魁
2023-03-14

问题是禁用道具。浏览器将忽略该选项,它不能被选中,这就是为什么其他选项在默认情况下被选中。您可以处理此空状态,同时将其保存为

class Form extends React.Component{
  render() {
return (
  <div>
    <form>
      <select value={this.props.is_expenditure}>
        <option defaultValue>Ehne mehne Muh</option>
        <option value="1">Test</option>
        <option value="2">Test 2</option>
      </select>
    </form>
  </div>
)
  }
};

ReactDOM.render(<Form/>, document.getElementById('app'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="app"></div>
 类似资料:
  • 我试图创建一个组件上传一个单一的图像,显示其预览和删除选项。此外,能够从后端base64编码的URL上传到字段中也很重要。这就是我此刻所拥有的。我将从应用程序状态传递到组件道具中,我实现了处理程序,这样它就可以将URL写入状态,而只是从状态中删除URL。 但是现在我想用一个拖放区域来代替通常的输入,并寻找最简单的方法来做到这一点。如果有任何帮助,我将不胜感激。 然后创建这样一个组件。 但对我不起作

  • 我无法找到一种方法来创建一个输入字段在Flutter将打开一个下拉的名字列表。Flutter material Widgets可能吗? 就像这样

  • 是否有方法将defaultValue传递给状态?我也尝试了value={},但值根本不变。

  • 请考虑以下示例: 我希望将值传递到中,作为哑输入组件的道具。然而,它从不重新呈现它。

  • 这是我的主页,在那里我选择了一个选项字段。 opt1.php: 这是我的javascript,在这里我从上面的select获得值,并传递给opt2.php 这是我的opt2.php页面,用于显示sub select。 实际上,这并没有产生预期的结果。 有没有逻辑上或处理上的错误?