Zaid-Ajaj / Feliz.Router

A router component for React and Elmish that is focused, powerful and extremely easy to use.
MIT License
78 stars 16 forks source link

Feliz.UseListener - unique overload could not be determined #27

Closed absolutejam closed 4 years ago

absolutejam commented 4 years ago

Howdy again!

I've just updated to 3.0.1 and when I build, I'm getting the following errors:

``` ERROR in ./.fable/Feliz.UseListener.0.5.0/Listener.fs Module Error (from ./node_modules/fable-loader/index.js): /Users/james/Documents/realmweaver/realmweaver/.fable/Feliz.UseListener.0.5.0/Listener.fs(28,17): (28,90) error FSHARP: A unique overload for method 'addEventListener' could not be determined based on type information prior to this program point. A type annotation may be needed. Candidates: abstract member EventTarget.addEventListener : type:string * listener:(Event -> unit) * ?options:AddEventListenerOptions -> unit, abstract member EventTarget.addEventListener : type:string * listener:(Event -> unit) * ?useCapture:bool -> unit (code 41) @ ./.fable/Feliz.Router.3.0.1/Router.fs 17:0-126 182:12-50 193:14-52 215:12-50 226:14-52 249:10-48 260:12-50 @ ./src/Client/src/AppRoot/View.fs @ ./src/Client/src/Program.fs @ ./src/Client/Client.fsproj @ multi ./src/Client/Client.fsproj ERROR in ./.fable/Feliz.UseListener.0.5.0/Listener.fs Module Error (from ./node_modules/fable-loader/index.js): /Users/james/Documents/realmweaver/realmweaver/.fable/Feliz.UseListener.0.5.0/Listener.fs(29,17): (29,93) error FSHARP: A unique overload for method 'removeEventListener' could not be determined based on type information prior to this program point. A type annotation may be needed. Candidates: abstract member EventTarget.removeEventListener : type:string * listener:(Event -> unit) * ?options:RemoveEventListenerOptions -> unit, abstract member EventTarget.removeEventListener : type:string * listener:(Event -> unit) * ?useCapture:bool -> unit (code 41) @ ./.fable/Feliz.Router.3.0.1/Router.fs 17:0-126 182:12-50 193:14-52 215:12-50 226:14-52 249:10-48 260:12-50 @ ./src/Client/src/AppRoot/View.fs @ ./src/Client/src/Program.fs @ ./src/Client/Client.fsproj @ multi ./src/Client/Client.fsproj ERROR in ./.fable/Feliz.UseListener.0.5.0/Listener.fs Module Error (from ./node_modules/fable-loader/index.js): /Users/james/Documents/realmweaver/realmweaver/.fable/Feliz.UseListener.0.5.0/Listener.fs(37,17): (37,83) error FSHARP: A unique overload for method 'addEventListener' could not be determined based on type information prior to this program point. A type annotation may be needed. Candidates: abstract member EventTarget.addEventListener : type:string * listener:(Event -> unit) * ?options:AddEventListenerOptions -> unit, abstract member EventTarget.addEventListener : type:string * listener:(Event -> unit) * ?useCapture:bool -> unit (code 41) @ ./.fable/Feliz.Router.3.0.1/Router.fs 17:0-126 182:12-50 193:14-52 215:12-50 226:14-52 249:10-48 260:12-50 @ ./src/Client/src/AppRoot/View.fs @ ./src/Client/src/Program.fs @ ./src/Client/Client.fsproj @ multi ./src/Client/Client.fsproj ERROR in ./.fable/Feliz.UseListener.0.5.0/Listener.fs Module Error (from ./node_modules/fable-loader/index.js): /Users/james/Documents/realmweaver/realmweaver/.fable/Feliz.UseListener.0.5.0/Listener.fs(42,17): (42,86) error FSHARP: A unique overload for method 'removeEventListener' could not be determined based on type information prior to this program point. A type annotation may be needed. Candidates: abstract member EventTarget.removeEventListener : type:string * listener:(Event -> unit) * ?options:RemoveEventListenerOptions -> unit, abstract member EventTarget.removeEventListener : type:string * listener:(Event -> unit) * ?useCapture:bool -> unit (code 41) @ ./.fable/Feliz.Router.3.0.1/Router.fs 17:0-126 182:12-50 193:14-52 215:12-50 226:14-52 249:10-48 260:12-50 @ ./src/Client/src/AppRoot/View.fs @ ./src/Client/src/Program.fs @ ./src/Client/Client.fsproj @ multi ./src/Client/Client.fsproj ERROR in ./.fable/Feliz.UseListener.0.5.0/Listener.fs Module Error (from ./node_modules/fable-loader/index.js): /Users/james/Documents/realmweaver/realmweaver/.fable/Feliz.UseListener.0.5.0/Listener.fs(48,17): (48,83) error FSHARP: A unique overload for method 'addEventListener' could not be determined based on type information prior to this program point. A type annotation may be needed. Candidates: abstract member EventTarget.addEventListener : type:string * listener:(Event -> unit) * ?options:AddEventListenerOptions -> unit, abstract member EventTarget.addEventListener : type:string * listener:(Event -> unit) * ?useCapture:bool -> unit (code 41) @ ./.fable/Feliz.Router.3.0.1/Router.fs 17:0-126 182:12-50 193:14-52 215:12-50 226:14-52 249:10-48 260:12-50 @ ./src/Client/src/AppRoot/View.fs @ ./src/Client/src/Program.fs @ ./src/Client/Client.fsproj @ multi ./src/Client/Client.fsproj ERROR in ./.fable/Feliz.UseListener.0.5.0/Listener.fs Module Error (from ./node_modules/fable-loader/index.js): /Users/james/Documents/realmweaver/realmweaver/.fable/Feliz.UseListener.0.5.0/Listener.fs(53,17): (53,86) error FSHARP: A unique overload for method 'removeEventListener' could not be determined based on type information prior to this program point. A type annotation may be needed. Candidates: abstract member EventTarget.removeEventListener : type:string * listener:(Event -> unit) * ?options:RemoveEventListenerOptions -> unit, abstract member EventTarget.removeEventListener : type:string * listener:(Event -> unit) * ?useCapture:bool -> unit (code 41) @ ./.fable/Feliz.Router.3.0.1/Router.fs 17:0-126 182:12-50 193:14-52 215:12-50 226:14-52 249:10-48 260:12-50 @ ./src/Client/src/AppRoot/View.fs @ ./src/Client/src/Program.fs @ ./src/Client/Client.fsproj @ multi ./src/Client/Client.fsproj ERROR in ./.fable/Feliz.UseListener.0.5.0/Listener.fs Module Error (from ./node_modules/fable-loader/index.js): /Users/james/Documents/realmweaver/realmweaver/.fable/Feliz.UseListener.0.5.0/Listener.fs(59,17): (59,83) error FSHARP: A unique overload for method 'addEventListener' could not be determined based on type information prior to this program point. A type annotation may be needed. Candidates: abstract member EventTarget.addEventListener : type:string * listener:(Event -> unit) * ?options:AddEventListenerOptions -> unit, abstract member EventTarget.addEventListener : type:string * listener:(Event -> unit) * ?useCapture:bool -> unit (code 41) @ ./.fable/Feliz.Router.3.0.1/Router.fs 17:0-126 182:12-50 193:14-52 215:12-50 226:14-52 249:10-48 260:12-50 @ ./src/Client/src/AppRoot/View.fs @ ./src/Client/src/Program.fs @ ./src/Client/Client.fsproj @ multi ./src/Client/Client.fsproj ERROR in ./.fable/Feliz.UseListener.0.5.0/Listener.fs Module Error (from ./node_modules/fable-loader/index.js): /Users/james/Documents/realmweaver/realmweaver/.fable/Feliz.UseListener.0.5.0/Listener.fs(64,17): (64,86) error FSHARP: A unique overload for method 'removeEventListener' could not be determined based on type information prior to this program point. A type annotation may be needed. Candidates: abstract member EventTarget.removeEventListener : type:string * listener:(Event -> unit) * ?options:RemoveEventListenerOptions -> unit, abstract member EventTarget.removeEventListener : type:string * listener:(Event -> unit) * ?useCapture:bool -> unit (code 41) @ ./.fable/Feliz.Router.3.0.1/Router.fs 17:0-126 182:12-50 193:14-52 215:12-50 226:14-52 249:10-48 260:12-50 @ ./src/Client/src/AppRoot/View.fs @ ./src/Client/src/Program.fs @ ./src/Client/Client.fsproj @ multi ./src/Client/Client.fsproj ```

Paket info:

    Feliz.Router (3.0.1)
      Fable.Core (>= 3.1.5)
      Fable.Elmish (>= 3.0.6)
      Feliz (>= 1.6)
      Feliz.UseListener (>= 0.3)
      FSharp.Core (>= 4.7.2)
    Feliz.UseListener (0.5)
      Fable.Core (>= 3.1.5 < 4.0)
      Feliz (>= 1.5 < 2.0)
      FSharp.Core (>= 4.7 < 5.0)

I don't get any errors in Ionide, but they're thrown when compiling the JS.

Honestly, not really sure what I can do/provide to help, so if you need any more info/context, please let me know.

Also downgraded t. 3.0.0 (no difference), but downgrading Feliz.UseListener to 0.4 allowed me to compile.

Zaid-Ajaj commented 4 years ago

Hi @absolutejam, thanks for filing the issue., It seems like newer versions of Feliz.UseListener aren't compatible with Feliz.Router. cc @Shmew can you please have a look?

Shmew commented 4 years ago

After playing around a bit I discovered that this isn't actually an issue with Feliz.Router or Feliz.UseListener, as updating dependencies while pinning Feliz.Router ~> 2.1 causes this overload resolution issue as well.

Digging further I found that Fable.Browser.Dom was updated a few days ago that added overloads that is causing this issue. In the meantime you can pin Fable.Browser.Dom to 1.2.0 and things should work.

Zaid-Ajaj commented 4 years ago

Hi @absolutejam, can you please confirm whether this issue is resolved as of v3.1.0?