所以我试图在reactjs中得到select个元素的值,但就是想不出来.this.refs.selectElement.getDOMNode().value总是以undefined的形式出现.表单上的所有其他控件(如text)都工作正常.有什么 idea 吗?是不是你不能通过refs获得select元素的值,而必须使用onChange事件?

更新:

var TestSelectClass = React.createClass({
  mixins: [Router.Navigation],

  _handleDube: function(event) {
    DubeActionCreators.DubeTest({
      message: this.refs.message.getDOMNode().value,
      tax: this.refs.tax.getDOMNode().value,
      validity: this.refs.valid_for.getDOMNode().value
    });
  },

  render: function() {
    return (
      <ReactBootstrap.ListGroup>
          <textarea
            className="form-control"
            rows="3"
            placeholder="Enter message"
            ref="message" >
          </textarea>
          <div className="input-group">
            <span className="input-group-addon" id="basic-addon1">$</span>
            <input type="text" className="form-control" placeholder="10" aria-describedby="basic-addon1" ref="tax" />
          </div>
        <Input type="select" value="1" ref="valid_for">
          <option value="1">1 hour</option>
          <option value="2">1 day</option>
          <option value="2">5 days</option>
        </Input>
      </ReactBootstrap.ListGroup>
    )
  }
});

更新: Solution So, if anyone runs into something similar, apparently if you are using react-bootstrap you can't get to the Input element if you have wrapped it in a ListGroup. Either take it out from it or wrap all Input elements in a <form> tag. This solved my issue, thanks for all the help.

推荐答案

我看到您使用的是react-bootstrap,其中包括一个围绕常规输入元素的包装器.

在这种情况下,需要使用getInputDOMNode()包装器函数来获取底层输入的实际DOM元素.但是你也可以使用getValue()便利功能.

所以你的_handleDube函数应该是这样的:

  _handleDube: function(event) {
    DubeActionCreators.DubeTest({
      message: this.refs.message.getInputDOMNode().value,
      tax: this.refs.tax.getInputDOMNode().value,
      validity: this.refs.valid_for.getValue()
    });
  },

请参阅这个JSFIDLE以获得完整的示例:http://jsfiddle.net/mnhm5j3g/1/

Reactjs相关问答推荐

如何将google地址lat收件箱设置为输入值?

使用Thattle和Use Effect setTimeout进行搜索有什么不同

将cy.get()与动态类名一起使用?

TypeError:b不是React.js中的函数错误

导致useState中断的中断模式

错误./src/TopScroll.js 31:21-31导出';(作为';随路由导入)在';Reaction-Router-Dom';中找不到

如何使我的代码可以接受我想要的每一个链接

取消 Select 较高组件中的所有行

使用以Jest 的方式返回 Promise 的方法来模拟可构造的 API 类时出现问题

为什么我会收到此错误:无法在我的react 包上读取 null 的属性(读取useState)?

我正在try 将一组加载程序函数发送到我的路由,它抛出一个错误 Handler is not a funtion in a reactJs application

导入样式化组件时未导入组件内容

作为单个变量的 React 组件是否比 memoized 组件渲染得更快?

我应该使用 useEffect 来为 React Native Reanimated 的 prop 值变化设置动画吗?

如何将我的 ID 值传递给下一个组件?

如何从其他组件访问 useQuery refetch 方法?

如何解决在 react.js 中找不到模块错误

如何定制 React 热 toastr ?

在表格中显示具有自定义声明的用户状态

React如何在用户登录后等待当前用户数据被获取