我正在Dropdown使用 Ant Design 制作菜单:
import React, { Component } from "react";
import { Icon, Dropdown, Menu } from "antd";
const { Item } = Menu;
class NotificationBell extends Component {
render() {
const menu = (
<Menu>
<Item><p>You must be connected to get notifications.</p></Item>
</Menu>
);
return (
<Dropdown overlay={menu} trigger={['click']}>
<Icon type="bell" theme="outlined" />
</Dropdown>
);
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我得到的:
但我不想只删除突出显示,我还想让组件不可点击,即我想要一个“普通光标”而不是“手形光标”。
按照Ant Design 文档的selectable={false}建议在组件上添加prop没有帮助。我应该怎么办?Menu
感谢您的帮助。
我知道直接修改状态而setState(...)不会自动更新UI,但我仍然可以这样做:
this.state.myValue = "foo";
this.forceUpdate();
Run Code Online (Sandbox Code Playgroud)
我也知道React等待某些时刻在一次通过中更新几个组件,但是有没有令人信服的理由为什么我不应该直接改变状态setState(...)?
有两种情况直接改变状态对我有益:
如果我必须修改一个非常长的数组的元素,setState(...)那么与每次复制整个数组的非浅的性能增益相比,"集群更新" 的性能增益可以忽略不计.
如果我在状态的2个不同属性中有2个对同一对象的引用,并且我想修改此对象,我宁愿对单个属性进行此修改,但如果我使用setState(...),则会复制该对象并丢失引用.
谢谢您的帮助.
这是我的迁移架构:
public function up()
{
Schema::create('objects', function (Blueprint $table) {
$table->increments('id');
$table->timestamp('timestamp1');
$table->timestamp('timestamp2');
});
}
Run Code Online (Sandbox Code Playgroud)
但是当我执行时php artisan migrate,我收到此错误:
Illuminate\Database\QueryException : SQLSTATE[42000]: 语法错误或访问冲突:1067 'timestamp2' 的默认值无效(SQL:创建表
objects(idint unsigned not null auto_increment 主键,timestamp1timestamp not null,timestamp2timestamp not null)默认字符集utf8mb4 整理 utf8mb4_unicode_ci)
我必须指出,当我删除 2$table->timestamp(...);行之一时,它可以工作,但当两者都存在时就不行。而Object.php模型是空的,因为它可以。我做错了吗?
我已经阅读了这篇文章,但即使我更改timestamp(...)为时不再有错误dateTime(...),我也只想要时间戳。
我想制作一个使用SoftDeletes命名的特征SoftDeletesWithStatus,它也会更新状态列。我的问题是我想在 的函数中间实现我的代码,SoftDeletes如下所示:
protected function runSoftDelete() {
$query = $this->newQueryWithoutScopes()->where($this->getKeyName(), $this->getKey());
$time = $this->freshTimestamp();
$columns = [$this->getDeletedAtColumn() => $this->fromDateTime($time)];
//I want to implement my code here
$this->{$this->getDeletedAtColumn()} = $time;
if ($this->timestamps && ! is_null($this->getUpdatedAtColumn())) {
$this->{$this->getUpdatedAtColumn()} = $time;
$columns[$this->getUpdatedAtColumn()] = $this->fromDateTime($time);
}
$query->update($columns);
}
public function restore() {
if ($this->fireModelEvent('restoring') === false) {
return false;
}
$this->{$this->getDeletedAtColumn()} = null;
//I want to implement my code here
$this->exists = true;
$result = $this->save();
$this->fireModelEvent('restored', false);
return …Run Code Online (Sandbox Code Playgroud) 我想将声明添加到用 Javascript 生成的 XML 文档中,但我没有找到足够的文档。
假设我想以编程方式(使用 Javascript)创建以下 XML 文档:
<?xml version="1.0" encoding="UTF-8"?>
<people>
<person first-name="eric" last-name="jung" />
</people>
Run Code Online (Sandbox Code Playgroud)
这是我所做的代码:
let doc = document.implementation.createDocument("", "", null);
let peopleElem = doc.createElement("people");
let personElem = doc.createElement("person");
personElem.setAttribute("first-name", "eric");
personElem.setAttribute("last-name", "jung");
peopleElem.appendChild(personElem);
doc.appendChild(peopleElem);
let docStr = new XMLSerializer().serializeToString(doc.documentElement);
console.log(docStr);
// produces:
// <people>
// <person first-name="eric" last-name="jung" />
// </people>
// and not:
// <?xml version="1.0" encoding="UTF-8"?>
// <people>
// <person first-name="eric" last-name="jung" />
// </people>
Run Code Online (Sandbox Code Playgroud)
我应该如何获取<?xml version="1.0" encoding="UTF-8"?>生成的 XML 中的 ? …
我想将我的API的JSON响应编码为UTF-8,但是每次我做出响应时,我都不想这样做:
return response()->json($res,200,['Content-type'=>'application/json;charset=utf-8'],JSON_UNESCAPED_UNICODE);
Run Code Online (Sandbox Code Playgroud)
因此,我考虑为所有API路由制作中间件,其handle(...)功能如下:
public function handle($request, Closure $next) {
$response = $next($request);
$response->header('Content-type','application/json; charset=utf-8');
return $next($request);
}
Run Code Online (Sandbox Code Playgroud)
问题是它不起作用Content-type,我的响应的标头仍然是,application/json而不是application/json; charset=utf-8;可能是因为该json(...)函数已经设置了Content-type标头,但我无法覆盖它。
我应该怎么做?
谢谢您的帮助。
我想在Chrome上激活触摸事件,以方便对使用touchstart和touchend事件的应用进行调试。
这篇文章似乎有点过时了,因为Overrides在开发人员设置上(无论是在Chrome上还是在Chrome Developer上),我都无法获取菜单。这是我在Chrome Dev 73上得到的:
我已经在设置中进行了彻底搜索,但没有看到此复选框。我还没有最新的教程可以激活它们。我能怎么做?
谢谢您的帮助。
在 Firefox 上(至少),当我们禁用 textarea 的边框时,它的右下角仍然可见。我们怎样才能删除它?
textarea:focus {
outline: solid;
}
textarea {
border: none;
}Run Code Online (Sandbox Code Playgroud)
<textarea>Hello</textarea>Run Code Online (Sandbox Code Playgroud)
我想覆盖类的background-color属性ant-menu-item-selected。默认情况下它显示为蓝色。
import { Menu } from 'antd';
const { Item } = Menu;
//item2 will be rendered with the class 'ant-menu-item-selected'
const MyComp = () => (
<Menu theme="dark" defaultSelectedKeys={["item2"]} mode="horizontal">
<Item key="item1">Item 1</Item>
<Item key="item2">Item 2</Item>
</Menu>
);
ReactDOM.render(<MyComp />,document.getElementById('root'));
Run Code Online (Sandbox Code Playgroud)
我应该怎么做?
感谢您的帮助。
我想在 TypeScript 函数的 return 语句中返回多个值。在 JavaScript 中执行此操作的标准方法是返回包含值 ( source )的数组,但是,由于我想要返回的值具有不同类型,因此在编译期间出现错误:
function fun() {
return ['hello', 1];
}
let [a, b] = fun();
console.log(a.substring(1));
Run Code Online (Sandbox Code Playgroud)
错误:
test.ts:6:15 - error TS2339: Property 'substring' does not exist on type 'string | number'.
Property 'substring' does not exist on type 'number'.
6 console.log(a.substring(1));
~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)
这个怎么做?
感谢您的帮助。
css ×3
javascript ×3
laravel ×3
reactjs ×3
antd ×2
php ×2
eloquent ×1
html5 ×1
json ×1
return-type ×1
soft-delete ×1
textarea ×1
touch ×1
typechecking ×1
typescript ×1
utf-8 ×1
xml ×1