我试图了解如何使用服务器组件处理模式打开/关闭。以前,对于客户端组件,我只需将状态提升到我的Layout:
export default function Layout({ children }) {
const [showPopup, setShowPopup] = useState(true)
return (
<>
<Popup showPopup={showPopup} setShowPopup={setShowPopup} />
<div>{children}</div>
</>
)
Run Code Online (Sandbox Code Playgroud)
然后根据这个状态显示/隐藏我的弹出窗口。但是,对于服务器组件,我不能再这样做了。为了使其工作,我需要"use client"在顶部将其设为客户端组件,但随后整个应用程序将成为客户端组件(因为这是我的根布局)。
我希望根布局成为一个服务器组件,以允许应用程序利用基础设施来实现更好的性能和整体用户体验。
那么,如何在不依赖 useState 和客户端组件的情况下处理显示或隐藏模式呢?这种情况很常见,我可能遗漏了一些明显的东西,但我找不到答案。
我对这个PDO::FETCH_OBJECT论点有疑问.我想获取一个对象而不是一个数组,但是当我尝试这个时:
try {
$conn = new PDO('mysql:host=localhost;dbname=washngo', $config['DB_USERNAME'], $config['DB_PASSWORD']);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //Fetch errors by default ( display any errors during the development process )
$stmt = $conn->prepare('SELECT * FROM news');
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_OBJECT)) { //By default, it fetch an array. The "PDO::FETCH_OBJECT" argument allows us to fetch an object
print_r($row);
}
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)
我明白了
致命错误:
FETCH_OBJECT第18行的index.php中未定义的类常量' '.
当我尝试fetch()默认(没有PDO::FETCH_OBJECT())时,它工作正常.
我真的不明白以下表达式,它的作用以及它是如何工作的.
a || b = c
Run Code Online (Sandbox Code Playgroud)
我猜它检查a是否为真,如果不是,则运行b = c?
应用程序的例子:
$id || $data['created'] = $now
Run Code Online (Sandbox Code Playgroud)