我想显示基于某些条件检查的输入,但出现错误
这是我到目前为止所做的
checkSomeCondition(){
if(...)
return true
else
return false
}
render(
return(
<Input type="checkbox" onClick={() =>{alert()}} checked={() => {this.checkSomeConditon}}>
)
)
我一直都在检查,不是因为checkSomcondition一直都返回true。即使checkSomeConditon返回false,我也会得到检查。
答案 0 :(得分:1)
尝试将条件检查结果移动到render方法中的自变量中。
render(
var checked = this.checkSomeCondition();
return(
<Input type="checkbox" onClick={() =>{alert()}} checked={checked}>
)
)
答案 1 :(得分:0)
render(
const { checked }=this.props.
const attribute = checked //or call your checkSomeCondition()
? {
checked: true
} : {};
render (
return(
<Input {...attribute} type="checkbox" onClick={() =>{alert()}}>
)
)
或者修复您的代码
checkSomeCondition(){
if(...)
return true
else
return false
}
render(
return(
<Input type="checkbox" onClick={() =>{alert()}} checked={() => {this.checkSomeConditon()}}>
)
)
答案 2 :(得分:0)
基本上,这就是您应如何处理react中的复选框
您应该执行以下操作
constructor(props){
super(props);
this.state= {
booleanChecked: false
}
}
checkSomeCondition = () => {
this.setState({
booleanChecked: !this.state.booleanChecked
});
}
render(){
return(
<Input type="checkbox" onClick={() => this.checkSomeCondition()} checked={this.state.booleanChecked}>
)
}
答案 3 :(得分:0)
我认为这是可行的。
import React from 'react';
import ReactDOM from 'react-dom';
class App extends React.Component {
checkSomeCondition(){
if(10>2){return true}
else
{return false}
}
render(){
return (
<input type="checkbox" onClick={() =>{alert()}} checked={this.checkSomeConditon} />
);
}
}
ReactDOM.render(<App />, document.getElementById('app'));
希望这会有所帮助!