Reactjs 按钮中的三元运算符导致'';预期TS(1005)错误
我在按钮中使用了三元运算符,并面临预期的“…”TS(1005)错误。所讨论的语法与reactjs网站中提供的语法完全相同。(示例:1)Reactjs 按钮中的三元运算符导致'';预期TS(1005)错误,reactjs,Reactjs,我在按钮中使用了三元运算符,并面临预期的“…”TS(1005)错误。所讨论的语法与reactjs网站中提供的语法完全相同。(示例:1) (示例:1) render(){ const isLoggedIn=this.state.isLoggedIn; 返回( 用户是{isLoggedIn?'当前':'未'}登录的。 ); } 我的代码是: import React, { useState } from 'react' import Button from 'react-bootstrap/But
(示例:1)
render(){
const isLoggedIn=this.state.isLoggedIn;
返回(
用户是{isLoggedIn?'当前':'未'}登录的。
);
}
我的代码是:
import React, { useState } from 'react'
import Button from 'react-bootstrap/Button'
import Form from 'react-bootstrap/Form'
import Modal from 'react-bootstrap/Modal'
import { Link } from 'react-router-dom'
export default function LoginSignupModal() {
const [show, setShow] = useState(false)
const handleClose = () => setShow(false)
const handleShow = () => setShow(true)
const [name, setName] = useState("")
const [email, setEmail] = useState("")
const [password, setPassword] = useState("")
const [errorPassword, setErrorPassword] = useState(false)
function handleRegister() {
console.log("name", name)
}
function handlePasswordConfirmation(data) {
if (data.target.value != password) {
console.log("didn't match")
setErrorPassword(true)
} else {
console.log("matched")
setErrorPassword(false)
}
}
return (
<>
<Button variant="primary" onClick={handleShow} style={{ marginLeft: '5px' }}>
Signup
</Button>
<Modal
show={show}
onHide={handleClose}
backdrop="static"
keyboard={false}
>
<Modal.Header closeButton>
<Modal.Title>Registration Form</Modal.Title>
</Modal.Header>
<Modal.Body>
<Form>
<Form.Group controlId="signupName">
<Form.Label>Name</Form.Label>
<Form.Control value={name} onChange={(data) => setName(data.target.value)} placeholder="John Doe" />
</Form.Group>
<Form.Group controlId="formBasicEmail">
<Form.Label>Email address</Form.Label>
<Form.Control value={email} onChange={(data) => setEmail(data.target.value)} type="email" placeholder="xyz@email.com" />
</Form.Group>
<Form.Group controlId="formBasicPassword">
<Form.Label>Password</Form.Label>
<Form.Control value={password} onChange={(data) => setPassword(data.target.value)} type="password" placeholder="Password" />
</Form.Group>
<Form.Group controlId="formBasicPasswordConfirmation">
<Form.Label>Confirm Password</Form.Label>
<Form.Control type="password" onChange={(data) => handlePasswordConfirmation(data)} placeholder="Re-enter Password" />
</Form.Group>
<-- **ERROR IN THE FOLLOWING LINE** -->
<Button variant="primary" type="submit" {(errorPassword) ? "disabled" : "active"}>Register</Button>
<Button variant="secondary" onClick={handleClose} style={{ marginLeft: "5px" }}>Close</Button>
</Form>
</Modal.Body>
<Modal.Footer>
By signing up, you agree to our privacy policy and terms and conditions.
</Modal.Footer>
</Modal>
</>
);
}
import React,{useState}来自“React”
从“反应引导/按钮”导入按钮
从“react引导/表单”导入表单
从“反应引导/模式”导入模式
从“react router dom”导入{Link}
导出默认函数LoginSignupModal(){
const[show,setShow]=useState(false)
常量handleClose=()=>setShow(false)
常量handleShow=()=>setShow(真)
const[name,setName]=useState(“”)
const[email,setEmail]=useState(“”)
const[password,setPassword]=useState(“”)
常量[errorPassword,setErrorPassword]=useState(false)
函数handleRegister(){
console.log(“name”,name)
}
功能手柄密码确认(数据){
if(data.target.value!=密码){
console.log(“不匹配”)
setErrorPassword(真)
}否则{
控制台日志(“匹配”)
setErrorPassword(错误)
}
}
返回(
报名
登记表
名称
setName(data.target.value)}占位符=“John Doe”/>
电子邮件地址
setEmail(data.target.value)}type=“email”占位符=”xyz@email.com" />
密码
setPassword(data.target.value)}type=“password”placeholder=“password”/
确认密码
handlePasswordConfirmation(data)}占位符=“重新输入密码”/>
登记
接近
通过注册,您同意我们的隐私政策和条款和条件。
);
}
在这里,我试图根据errorPassword状态在按钮上添加禁用/激活。但这给了我一个错误。
生成代码部分时出错:
<Button variant="primary" type="submit" {(errorPassword) ? "disabled" : "active"}>Register</Button>
寄存器
禁用
和激活
时,这些变体应能工作:
// Recommended
<Button disabled={errorPassword} active={!errorPassword}>
Register
</Button>
// Unreadable
<Button {...{ [errorPassword ? "disabled" : "active"]: true }}>
Register
</Button>
// Same as above just a bit more readable
const errorPasswordProps = { [errorPassword ? "disabled" : "active"]: true };
<Button {...errorPasswordProps}>Register</Button>;
//推荐
登记
//不可读
登记
//同上,只是可读性更强一点
const errorPasswordProps={[errorPassword?“disabled”:“active”]:true};
登记
这是material在其源代码中设置其ternity的方式
<Button {...(errorPassword ? { disabled: true } : { active: true })}>
Register
</Button>
登记
但更好的表达方式是在按钮本身中定义hasError
属性,并传递hasError={errorPassword}
{(errorPassword)?“disabled”:“active”}
它应该作为道具传递。像isActive={(errorPassword)-“disabled”:“active”}
。现在您可以使用props.isActive
启用/禁用按钮。而是传递一个布尔值。
<Button {...(errorPassword ? { disabled: true } : { active: true })}>
Register
</Button>