Javascript 在onClick中传递单个值(不使用表单提交)

Javascript 在onClick中传递单个值(不使用表单提交),javascript,reactjs,Javascript,Reactjs,理想情况下,我希望传递一个单数值,而不是创建几个putPriority获取 但该值不会通过用户输入(即不是输入字段) 我想通过onClick传递这个值 在我的示例中,我希望onClick在fetch(this.state.level)中向“status”传递一个数字 基本上,我希望它能像这样工作: putPriority: function(e) { e.preventDefault(); return fetch(DATA_API, { method: 'PUT

理想情况下,我希望传递一个单数值,而不是创建几个putPriority获取

但该值不会通过用户输入(即不是输入字段)

我想通过onClick传递这个值

在我的示例中,我希望onClick在fetch(this.state.level)中向“status”传递一个数字

基本上,我希望它能像这样工作:

  putPriority: function(e) {
    e.preventDefault();
     return fetch(DATA_API, {
     method: 'PUT',
     body: JSON.stringify({
         status:this.state.level,
         tag:[
           {}
          ]
      })
      })
      .then(function(res){ return res.json(); })
      .then(function(data){ alert( JSON.stringify( data ) ) })
  },


  ...

  render: function(){
        return (
    <Button onClick={this.putPriority} title="level" value="1">High </Button>

    <Button onClick={this.putPriority} title="level" value="2">Medium </Button>

    <Button onClick={this.putPriority} title="level" value="3">Low </Button>
  }
)};
putPriority:函数(e){
e、 预防默认值();
返回获取(数据)API{
方法:'放',
正文:JSON.stringify({
状态:this.state.level,
标签:[
{}
]
})
})
.then(函数(res){return res.json();})
.then(函数(数据){alert(JSON.stringify(数据))}
},
...
render:function(){
返回(
高
中等
低
}
)};

您可以使用此选项获取当前值:

putPriority: function(e) {
 e.preventDefault();
 var currentStatus = e.currentTarget.getAttribute("value");
 return fetch(DATA_API, {
 method: 'PUT',
 body: JSON.stringify({
     status: currentStatus,
     tag: [
       {}
      ]
  })
  })
  .then(function(res){ return res.json(); })
  .then(function(data){ alert( JSON.stringify( data ) ) })
},
这会解决你的问题

var currentStatus = e.currentTarget.getAttribute("value");
您可以使用
bind()
将值传递给
handleClick
函数,而不是
this.state.level
只需使用value-liek即可

body: JSON.stringify({
     status:value,
     tag:[
       {}
      ]
  })
var-App=React.createClass({
putPriority:函数(值,e){
e、 预防默认值();
console.log(值);
},
render:function(){
返回(
高
中等
低
)  
}
})
ReactDOM.render(,document.getElementById('app'))


按钮
似乎是一个自定义组件。如果没有更多的代码,则不清楚事件对象是否传递给
putPriority
。是的,您是对的,但他使用的是react,根据react语法,“e”将是事件,并且他定义了e.preventDefault();所以“e”是“event”,所以我们可以访问它的相关元素。如果我们谈论的是
按钮
HTML元素,那么是的。但是在代码中,他们使用了一个
按钮
组件(注意大写B和小写B),我们对此一无所知。我们不知道组件在用
onClick
prop做什么。是的,这也是一个很好的观点:)让他来定义这个。。感谢您指出这一点。
按钮是如何定义的?当它调用
onClick
函数时,它不能只传递
value
的值吗?您可以使用bind to pass value来单击函数。。。e、 g.this.putPriority.bind(this,yourvalue)