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