小编Yai*_*pro的帖子

我可以在无状态组件中调用forceUpdate吗?

我有一个无状态组件,我想重新渲染它.我怎么能这样做?我试过用this,但没用.

我可以改用forUpdate或其他东西吗?

javascript reactjs

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

React - useState 的 setter 函数可以改变吗?

useState 的 setter 是否能够在组件生命周期内更改?

例如,假设我们有一个useCallback将更新状态。如果 setter 能够更改,则必须将其设置为回调的依赖项,因为回调使用它。

const [state, setState] = useState(false);
const callback = useCallback(
    () => setState(true),
    [setState] // <-- 
);
Run Code Online (Sandbox Code Playgroud)

reactjs react-hooks

16
推荐指数
2
解决办法
8893
查看次数

如何代理自定义元素(Web组件)

class A extends HTMLElement {
  constructor() {
    super()
    return new Proxy(this, {})
  }
}

window.customElements.define('a-element', A)
Run Code Online (Sandbox Code Playgroud)
<a-element></a-element>
Run Code Online (Sandbox Code Playgroud)

我如何代理自定义元素?

当我尝试它:

Uncaught InvalidStateError: custom element constructors must call super() first and must not return a different object.

javascript web-component custom-element es6-proxy es6-class

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

如何向清单中的接收者发送自定义广播操作?

MyReceiver.java

public class MyReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(final Context context, final Intent intent) {
        Log.i("MyReceiver", "MyAction received!");
    }
}
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml(application标签下)

<receiver android:name=".MyReceiver">
    <intent-filter>
        <action android:name="MyAction" />
    </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

MainActivity.Java

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        sendBroadcast(new Intent("MyAction"));
    }
}
Run Code Online (Sandbox Code Playgroud)

MyReceiver.onReceive方法永远不会被触发.我错过了什么?

android broadcastreceiver android-manifest android-broadcast

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

为什么 CSS 高度 100% 会溢出父级?

当 CSS 明确说明时,为什么该#red元素比其父元素大height: 100%

#black {
  background-color: black;
  padding: 5px;
  max-height:50px;
}

#red {
  background-color: red;
  padding: 5px;
  height:100%;
}

#grey {
  background-color: grey; 
  height: 100px; /* The height is just used as an exemple, it cannot be known.  */
  max-height: 100%;
}
Run Code Online (Sandbox Code Playgroud)
<div id="black">
    <div id="red">
      <div id="grey"></div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

因为有些答案似乎不理解需求,这意味着我不清楚我的目的(我的错,抱歉)。

我想要什么:

#red元素与其父元素具有相同的高度#black因此没有滚动条,没有溢出,也没有隐藏空间)。元素#black的高度可能会改变(因此它不能有精确的高度),但受max-height.

html css

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

Typescript - 导入模块(如果存在)

如果模块存在,如何导入?

我有 2 个项目,客户端和服务器。两者都导入同一个文件。
该文件导入仅安装在服务器项目中的节点模块。客户端没有该模块。因此,require 必须返回从服务器项目打开时键入的
模块。从客户端项目打开时 它必须返回。
undefined

下面是客户项目的屏幕截图。Typescript 无法编译,因为它说找不到该模块。 Typescript require 找不到模块 type-graphql

简单的require不保留类型: 在此输入图像描述

typescript

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

JS - 为什么 array.sort() 不会为对象和数字返回相同的结果?

对对象数组进行排序(通过 number 类型的属性)不会返回类似于数字数组的排序结果。
为什么这样 ?
如何让它像数字一样排序?

演示:对数字数组进行排序

const sorted = [0,  5,  2, undefined,  3,  1,  4]
  .sort((a, b) => a - b);
  
console.log(sorted);
Run Code Online (Sandbox Code Playgroud)

演示:对对象数组进行排序

const notSorted = [
  {i:0},
  {i:5},
  {i:2},
  {i: undefined},
  {i:3},
  {i:1},
  {i:4},
]
  .sort((a, b) => a.i - b.i)
  .map(a => a.i);
  
console.log(notSorted);
Run Code Online (Sandbox Code Playgroud)

我目前使用的是 Chrome 90。也许其他一些浏览器或引擎没有这个问题。告诉我。

javascript sorting

6
推荐指数
2
解决办法
134
查看次数

重写Promise构造函数及其方法

我想覆盖Promise构造函数和Promise中的then方法。因此,每当有人创建一个新的Promise对象时,首先将执行我的代码,然后将调用原始的promise构造函数。

同样,当有人调用Promise的.then函数时,首先将执行我的代码,然后将执行该then函数的回调。

我试过了

var bind = Function.bind;
var unbind = bind.bind(bind);

function instantiate(constructor, args) {
    return new (unbind(constructor, null).apply(null, args));
}

var oldProto = Promise.prototype;
Promise = function() {
    console.log("Promise instantiated");
    var promise = instantiate(Promise, arguments);
    return promise;
};
Promise.prototype = oldProto;
Run Code Online (Sandbox Code Playgroud)

当使用

var myFirstPromise = new Promise((resolve, reject) => {
  setTimeout(function(){
    resolve("Success!"); // Yay! Everything went well!
  }, 250);
});

myFirstPromise.then((successMessage) => {
  console.log("Yay! " + successMessage);
});
Run Code Online (Sandbox Code Playgroud)

它导致无限循环,控制台充满了Promise instantiated日志。我还尝试了以下方法:

Promise = function(Promise) {
    MyPromise.prototype …
Run Code Online (Sandbox Code Playgroud)

javascript overriding prototype monkeypatching promise

5
推荐指数
0
解决办法
373
查看次数

React-Native - 图像未在 Android 模拟器中显示

为什么图像在 Android 模拟器上无法渲染?

我只有2个文件:

索引.js

import { AppRegistry } from 'react-native';
import App from './src/App';

AppRegistry.registerComponent('FirstApp', () => App);
Run Code Online (Sandbox Code Playgroud)

应用程序.js

    import React, { Component } from 'react';
    import {View, Image, Text} from 'react-native';

    export default class App extends Component<{}> {
        render() {
            return (
                <View>
                    <Image source={{uri: "https://upload.wikimedia.org/wikipedia/commons/d/de/Bananavarieties.jpg"}}
                           style={{width: 193, height: 110}}/>
                    <Text>Some text here..</Text>
                </View>
            );
        }
    }
Run Code Online (Sandbox Code Playgroud)

安卓模拟器:

在此输入图像描述

安卓设备:

在此输入图像描述

android image react-native

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

Webpack - devtool source-map VS eval-source-map

--devtool source-map和有eval-source-map什么区别?

webpack

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