三元运算返回相同的结果,没有求值条件



我有一个3行表。当userA创建并与另一个用户共享文件时,我希望状态列更改为"shared",并将值存储在DB中。该状态的默认值为private,只有当用户为userA且isshared为true时才会更改为shared。

这些是我的代码,但目前,无论isshared是真还是假,我都得到public。是因为我将const status定义为public吗?知道我该怎么解决吗?

import React from "react";
import { useSelector } from "react-redux";
import { getLocalStorageStore } from "@/store/localStorage/utils";
const FileResults: React.FC<FileResultType> = props => {
const { results, filename, status = "private" } = props;
const { email = "", isShared = false } = useSelector(getLocalStorageStore);
const isUserA = email.toLowerCase().includes("usera");
return (
<>
<tr className="file-result">
<td>{results || "--"}</td>
<td>{filename || "--"}</td>
<td>{( isUserA && (isShared === true) ) ? status : "public"}</td>
</>
);
};
export default FileResults;
FileResultType
export interface FileResultType {
result: string
filename: string
status: string
}
API
type FileresultData struct {
result string `json: "id"`
filename string `json: "filename"`
status string `json: status`
} 

确保isSharedboolean而不是string

因为在这个语句中,如果它是string,它总是返回false:

console.log(true && "false" === true ? "status" : "public");
// --> public
console.log(true && "true" === true ? "status" : "public");
// --> also public
console.log(true && true === true ? "status" : "public");
// --> status
//THEN YOU COULD SHORTEN IT LIKE SO:
console.log((true && true) ? "status" : "public");
// --> status
console.log((true && false) ? "status" : "public");
// --> public

最新更新