小编pad*_*otk的帖子

“React Hook useEffect 缺少依赖项”函数警告

所以我有这个使用 useEffect() 钩子的 React 组件:

const [stateItem, setStateItem] = useState(0);

useEffect(() => {
  if (condition) {
    myFunction();
  }
}, [stateItem]);

const myFunction = () => {
  return 'hello';
}
Run Code Online (Sandbox Code Playgroud)

React 向我发出警告,提示“myFunction”缺少依赖项。我(认为我)理解为什么,并且我已经阅读了许多类似的问题,要求或多或少相同的事情,但答案始终是“将您的函数移至 useEffect 挂钩”。如果不是从不同的地方调用 myFunction,这会很好,例如:

...
return (
  <Button onClick={() => myFunction()} />
);
Run Code Online (Sandbox Code Playgroud)

因此我不能将我的函数放入 useEffect 挂钩中。

类似问题的一个答案是将函数放在组件之外,但这需要我将大量数据传递给我的函数,例如 const myFunction(stateItem, setStateItem, someProp) => { stuff };

当有多个函数需要传递许多 props、state hooks 等时,这会变得非常乏味。

除了在 useEffect 钩子上方放置 linterignore 注释之外,还有什么更实际的事情可以做吗?我发现这些事情使得使用反应钩子变得非常不切实际。

javascript reactjs react-hooks

7
推荐指数
2
解决办法
5822
查看次数

写完后在新浏览器窗口中打开文件(使用fopen)

我正在编写一个简单的订单系统,其中使用该fopen函数将多个数字(填写在表单中)写入另一个.php文件(也可能是.html).这工作正常,但在写入文件后,我希望浏览器实际打开该写入的文件,最好是在新的浏览器窗口中.这样我的客户可以使用它来打印,用作发票等.

现在我仍然是一个基于PHP的新手,并没有使用的经验fopen.但是在我寻找教程等的地方,据说fopen打开(或写当然)一个文件,但它并没有我所经历过的.它似乎只允许访问指定的文件进行写入和读取,而不是实际显示新写入的页面.

为了避免混淆:我不想在SO状态下像其他问题那样打开链接.

我的代码:

<form action="" method="post">
  <input type="text" id="amountTuna" name="numberTuna" value="0"/>
  <input type="text" id="amountCheese" name="numberCheese" value="0"/>
  <input name="send" id="send" type="submit" value="Post order" />
</form>

<?php
if (array_key_exists('send', $_POST)) { 
  $order = "order.php";
  $fh = fopen($order, 'w') or die("can't open file");//file handler

  fwrite($fh, "Tuna sandwiches: " . stripslashes($_POST['numberTuna']));
  fwrite($fh, "Cheese sandwiches: " . stripslashes($_POST['numberCheese']));

  $fh = fopen($factuur, 'r');
  $fileip = fread($fh, filesize($factuur));
  fclose($fh);
}
?>
Run Code Online (Sandbox Code Playgroud)

尝试不同的fopen参数,如'w','r', …

php

5
推荐指数
1
解决办法
6626
查看次数

如何设置 matInput 的值

如何设置角度材质输入字段的值。然后,我从我的组件中以 json 对象的形式从数据库获取数据,我想将这些数据设置为 Angular Material 表单输入字段中的值。

this.http.get('http://localhost:8000/v1/passenger/2/getPassenger').
  subscribe(
      response => {
        this.data = response.json();
      }
  );
Run Code Online (Sandbox Code Playgroud)

如何在表单中传递值。

javascript angular-material angular2-forms

4
推荐指数
1
解决办法
4万
查看次数

php电子邮件 - 如何避免邮件以垃圾邮箱结尾

我在我的网站上有一个联系表格,它实际上有效:D问题是,电子邮件最终在垃圾邮件文件夹中.我试图用标题部分做一些事情,但似乎没有任何效果.

谁能帮我这个?

谢谢

<?php
    ini_set("display_errors", "0");
    $post_data = filter_input_array( INPUT_POST, FILTER_SANITIZE_SPECIAL_CHARS );

    $name = $post_data["name"];
    $email = $post_data["email"];
    $phone = $post_data["phone"];
    $website = $post_data["website"];
    $message = $post_data["message"];



    # select data that needs validation
    $validate = array(
        'required'  => array($name,$email,$message),
        'validEmail'    => array($email),
        'validNumber'   => array($phone),
        'validAlpha'    => array($name)
    );
    $formcontent = "Name: $name \nE-Mail: $email \nPhone: $phone \nWebsite: $website \nMessage: $message \n";
    $formcontent = wordwrap($formcontent, 70, "\n", true);

    $recipient = "thomas.teilmann@gmail.com"; 
    $subject = "Contact Messenbrink.eu"; 

    /*$mailheader = "From: $email \r\n";**/ …
Run Code Online (Sandbox Code Playgroud)

php email

2
推荐指数
1
解决办法
1万
查看次数

css类不会更改现有的类属性

假设我的风格如下:

#app-container ul.apps li.app1 {
   border-color:#57b6dd;
   background:url(app-icons/app1.png) no-repeat 10px 10px;
}
Run Code Online (Sandbox Code Playgroud)

<li class="app1">

现在假设我在页面中再次出现相同的li,但我想将边框颜色更改为托盘,向现有类添加类不会更改颜色.

.app-inactive-border { 
   border-color: #666666;
}
Run Code Online (Sandbox Code Playgroud)

<li class="app1 app-inactive-border">

我究竟做错了什么?谢谢

我把它放在了jsfiddle http://jsfiddle.net/noscirre/JtVGp/24/

html css

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