小编Rah*_*ppa的帖子

在功能组件中使用 PanResponder:为什么在 panResponder 变量上使用 useRef?

在PanResponder 的React Native文档中,他们的功能组件示例将 useRef 应用于他们创建的 PanResponder 变量。

const panResponder = useRef(
  PanResponder.create({
    onMoveShouldSetPanResponder: () => true,
    onPanResponderGrant: () => {
      pan.setOffset({
        x: pan.x._value,
        y: pan.y._value
      });
    },
    onPanResponderMove: Animated.event(
      [
        null,
        { dx: pan.x, dy: pan.y }
      ]
    ),
    onPanResponderRelease: () => {
      pan.flattenOffset();
    }
  })
  ).current
Run Code Online (Sandbox Code Playgroud)

如果我们在这里删除 useRef,该组件仍然可以按预期工作。那么他们为什么选择包含 useRef 呢?

我的猜测是,它可以防止 panResponder 变量被重复销毁和创建,从而提供一些效率提升。这是真的吗?这是唯一的好处吗?

我尝试在我的一个程序中使用相同的模式,但注意到一个问题,即 PanResponder 的方法之一不反映更新的道具的状态(启用)。以下代码不起作用,因为 onStartShouldSetPanResponder 似乎以启用 = false 进行初始化,并且尽管启用的属性更新为 true,但仍持续存在。

const panResponder = useRef(
  PanResponder.create({
    // we want this component to become the responder when the …
Run Code Online (Sandbox Code Playgroud)

gesture reactjs react-native react-hooks

6
推荐指数
1
解决办法
907
查看次数

如果你不能在 php 中使用 html,那么为什么你可以在 php 标签中调用一个开放式的 html 脚本呢?

如果由于 php 引擎无法解析 html 代码,我们无法在 php 中使用 html 代码,那么为什么我们可以在 php 标签中包含一个开放式(没有关闭 html 标签)的 html 脚本?

我尝试用包含文件的裸内容替换 include 调用,但这会触发意外的文件结束错误(这是有道理的,因为 php 无法解析 html)。

注册.php:

<?php
    $page_title = 'Register';
    // the following script echoes $page_title as title, links to stylesheet, and opens body
    include ('includes/header.html');
Run Code Online (Sandbox Code Playgroud)

头文件.html:

<!DOCTYPE HTML>
<html lang = "en">
    <head>
        <meta charset="UTF-8">
        <title> <?php echo $page_title ; ?> </title>
        <link rel = "stylesheet" href="includes/style.css">
    </head>
    <body>
        <header> <h1>Page Header</h1></header>
Run Code Online (Sandbox Code Playgroud)

我期望以下之间的一致性:

a)包含('includes/header.html')

b)只需插入 header.html 代码。

来自b) 的 …

html php

-1
推荐指数
1
解决办法
389
查看次数

标签 统计

gesture ×1

html ×1

php ×1

react-hooks ×1

react-native ×1

reactjs ×1