//为了清晰而编辑
我正在尝试用redux thunk链接调度
function simple_action(){
return {type: "SIMPLE_ACTION"}
}
export function async_action(){
return function(dispatch, getState){
return dispatch(simple_action).then(()=>{...});
}
}
Run Code Online (Sandbox Code Playgroud)
如何让调度从商店返回承诺?
进一步来说:
我可能只是在这里不了解一些东西,但是在所有的例子中redux-thunk
,它们都会调用一个单独的异步事件(如fetch
),这显然会返回一个Promise
.
我特别想要的是当我向商店发送一个动作时:如何确保商店在上述功能发生任何其他事件之前完全处理了该动作action_creator()
.
理想情况下,我希望商店能够返回某种承诺,但我不明白这是怎么回事?
基本上我希望能够检测反应组件是否有溢出的子项.就像在这个问题中一样.我发现使用ReactDOM可以做同样的事情,但我不能/不应该使用ReactDOM.我没有看到建议的替代方案ref
,这是等效的.
所以我需要知道的是,在这些条件下是否有可能检测到反应组分内的溢出.同样,是否可以检测宽度?
我有一个采用泛型类型的函数,我需要确保该类型是 JSON 可序列化的(也就是原始属性)。
我对此的尝试是为 JSON 兼容类型定义一个接口,并强制我的泛型扩展此类型:
type JSONPrimitive = string | number | boolean | null
interface JSONObject {
[prop: string]: JSONPrimitive | JSONPrimitive[] | JSONObject | JSONObject[]
}
export type JSONable = JSONObject | JSONPrimitive | JSONObject[] | JSONPrimitive[]
function myFunc<T extends JSONable>(thing: T): T {
...
}
// Elsewhere
// I know that if this was defined as a `type` rather than
// an `interface` this would all work, but i need a method
// that works with …
Run Code Online (Sandbox Code Playgroud) 因此,我必须接受泛型类型 T,它将作为数字基元之一的包装类,并用它进行一些算术运算。我认为这会很简单,因为自动装箱和拆箱:
T newval = val1*val2;
Run Code Online (Sandbox Code Playgroud)
(其中 val1 和 val2 已经是 T 类型的变量,其中包含适当的值。)
但事实证明,如果 Java 在编译时不明确知道类型,则它不会拆箱值。我还认为我可以使用每个 Number 子类(我打算使用)中的乘法方法。所以我用以下方式声明了我的课程:
public class SomeClass<T extends Number> {
// ...
}
Run Code Online (Sandbox Code Playgroud)
进而:
T newval = val1.multiiply(val2);
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为我猜并不是所有 Number 的子类都需要(为什么他们不为此使用接口?)来拥有该方法(但我想使用 DO 的所有子类。)
我见过一些类似的问题,但它们都导致OP被告知不要使用泛型,但我需要在我正在做的工作中使用泛型,否则整个事情就没有价值了。有人能想到一个对我有用的解决方案吗?
编辑: 好的,所以他回复我并澄清了意思,它足够不同,我的问题不再与我正在做的事情相关。多谢你们。