Javascript 如何使用react从轮询应用程序中删除选项?

Javascript 如何使用react从轮询应用程序中删除选项?,javascript,python,reactjs,flask,rxjs,Javascript,Python,Reactjs,Flask,Rxjs,这是代码。我尝试过这种方法 删除选项 再加上这个 handleRemoveOption: function (option){ let indexOfOption = this.state.options.indexOf(option); let updatedOptions = this.state.options.slice(0,indexOfOption).concat(this.state.options.slice(indexOfOption + 1)); this.setState

这是代码。我尝试过这种方法

删除选项

再加上这个

 handleRemoveOption: function (option){
let indexOfOption = this.state.options.indexOf(option);
let updatedOptions = this.state.options.slice(0,indexOfOption).concat(this.state.options.slice(indexOfOption + 1));
this.setState({options: updatedOptions});
你知道为什么会失败吗?实际上什么也不做,日志显示在单击按钮时执行了一些POST操作

感谢您的帮助,因为我整天都在处理这件事

var-Router=ReactRouter.Router;
var Route=ReactRouter.Route;
var browserHistory=ReactRouter.browserHistory
试一试{
var SimpleTimePicker=ReactSimpleTimePicker.SimpleTimePicker;
}捕捉(错误){
控制台日志(err);
}
//css样式将文本与其容器的中心对齐
变量对齐={
textAlign:'中心',
fontFamily:“EB Garamond”
};
变量TimeLeft={
颜色:“#999”,
字体大小:“15px”
}
变量原点=window.location.origin;
var PollForm=React.createClass({
getInitialState:函数(e){
//设置表单输入的初始状态
//默认情况下,在24小时内关闭投票
var close_date=新日期();
close_date.setHours(close_date.getHours()+24);
close\u date=close\u date.getTime()/1000;
返回{标题:“”,选项:“”,选项:[],关闭日期:关闭日期,所有选项:[]
},
handleTitleChange:功能(e){
//根据用户类型更改标题
this.setState({title:e.target.value});
},
handleOptionChange:功能(e){
this.setState({option:e.target.value});
},
handleOptionAdd:函数(e){
//将轮询选项和重置选项更新为空字符串
这是我的国家({
选项:this.state.options.concat({name:this.state.option}),
选项:“”
});
},
HandlerRemoveOption:函数(选项){
让indexOfOption=this.state.options.indexOf(option);
让updateOptions=this.state.options.slice(0,indexOfOption.concat(this.state.options.slice(indexOfOption+1));
this.setState({options:updateoptions});
},
onDateChange:功能(e){
//以秒为单位将日期转换为UTC时间戳
var close_date=e.getTime()/1000
this.setState({close_date:close_date})
},
componentDidMount:function(){
var url=origin+'/api/polls/options'
//获取所有选项
$.ajax({
url:url,
数据类型:“json”,
cache:false,
成功:功能(数据){
this.setState({all_options:data});
}.绑定(此),
错误:函数(xhr、状态、错误){
错误(url、状态、err.toString());
}.绑定(此)
});
},
handleSubmit:函数(e){
e、 预防默认值();
var title=this.state.title;
var options=this.state.options;
var close_date=this.state.close_date;
变量数据={title:title,
选项:options.map(函数(x){return x.name}),
关闭日期:关闭日期
};
console.log(数据)
var url=origin+'/api/polls'
//发帖
$.ajax({
url:url,
数据类型:“json”,
键入:“POST”,
数据:JSON.stringify(数据),
contentType:'application/json;charset=utf-8',
成功:功能(数据){
警报(数据、消息);
}.绑定(此),
错误:函数(xhr、状态、错误){
警报('轮询创建失败:'+err.toString());
}.绑定(此)
});
},
render:function(){
var classContext=“col-sm-6 col-sm-offset-3”
var all\u options=this.state.all\u options.map(函数(选项){
返回()
});
返回(
创建投票
标题
选项
多吉托
{所有选项}
{“某物”}

添加选项 删除选项 保存投票
实时显示 ); } }); var LivePreview=React.createClass({ getInitialState:函数(){ 返回{selected_option:'',已禁用:0}; }, handleOptionChange:功能(e){ this.setState({selected_option:e.target.value}); }, voteHandler:函数(e){ e、 预防默认值(); var data={“poll_title”:this.props.title,“option”:this.state.selected_option}; //调用道具处理程序 this.props.voteHandler(数据); //禁用按钮 this.setState({disabled:1}); }, render:function(){ var options=this.props.options.map(函数(选项){ if(option.name){ //计算进度条百分比 var progress=Math.round((option.vote_count/this.props.total_vote_count)*100)|0 当前变量={宽度:进度+“%” 返回( {option.name} {进度}% ); } }.约束(这个); 返回( {this.props.title} {options}
提交 {this.props.total_vote_count}到目前为止的投票数 |{this.props.close_date} ) } }); var LivePreviewProps=React.createClass({ voteHandler:函数(数据){ var url=origin+'/api/poll/vote' //提出补丁请求 $.ajax({ url:url, 数据类型:“json”, 键入:“补丁”, 数据:JSON.stringify(数据), contentType:'application/json;charset=utf-8', 成功:功能(数据){ 警报(数据、消息); this.setState({selected_option:''}); this.props.loadPollsFromServer(); }.绑定(此), 错误:函数(xhr、状态、错误){ 警报('轮询创建失败:'+err.toString()); }.绑定(此) }); }, render:function(){ var polls=this.props.polls.polls.map(函数(poll)){ var minutes=Math.floor((Date.parse(poll.close_Date)-Date.now())/(60000)); var时间_剩余=“”; 如果(分钟数>1和分钟数<59){ 剩余时间+=m