繁体   English   中英

我希望打开和关闭我的显示<p>标签

[英]I wish to toggle on and off the display of my <p> tag

我想根据链接是否为 URL 来切换<p>标记。

<p style={{color : "red", display : {isValid}}} >Invalid URL</p>

确定 isValid 值的函数是

const [isValid, setIsValid] = useState('none');

const isUriImage = function(uri) {
    console.log(isValid)
    setImage_url(uri.target.value);
    uri = uri.target.value;
    uri = uri.toString().split('?')[0];
    var parts = uri.split('.');
    var extension = parts[parts.length-1];
    var imageTypes = ['jpg','jpeg','tiff','png','gif','bmp']
    if(imageTypes.indexOf(extension) != -1) {
        setIsValid('none');   
        console.log("Valid")
    } else {
        setIsValid('');
        console.log("Not Valid")
    }
}

代码工作正常,因为我已经用 console.log 语句确认了它,但是我的<p>标记的显示没有改变。

您将显示属性设置为和对象,键为 isValid,而不是直接将 isValid 分配为变量

<p style={{ color: "red", display: isValid }} >Invalid URL</p>

顺便提一下,如果您只想有条件地隐藏它,那么在 React 方式中,最好根本不渲染 p 标签

改为使用布尔值

const [isValid, setIsValid] = useState(false);

有条件地渲染

{isValid && <p style={{ color: "red" }} >Invalid URL</p>}

在您的场景中,您的元素显示将是“无”,但它仍将在 DOM 中。 在上述情况下,它不会被渲染到 DOM。

只需删除isvalid变量周围的额外{}即可。

<p style={{color : "red", display : isValid }} >Invalid URL</p>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM