所以我有这个使用 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 注释之外,还有什么更实际的事情可以做吗?我发现这些事情使得使用反应钩子变得非常不切实际。
我正在编写一个简单的订单系统,其中使用该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', …
如何设置角度材质输入字段的值。然后,我从我的组件中以 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)
如何在表单中传递值。
我在我的网站上有一个联系表格,它实际上有效: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) 假设我的风格如下:
#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/