|
92 | 92 | <div style="margin-top: 2em"> |
93 | 93 | <button @onclick="CreateInstanceByConstructorFunction">Call constructor function InvokeNewAsync</button> |
94 | 94 | <button @onclick="CreateInstanceByClassConstructor">Call class constructor with InvokeNewAsync</button> |
| 95 | + <button @onclick="ChangeInstanceMethodWithFunctionReference">Change instance method with function reference</button> |
95 | 96 | <span>@InstanceMessage</span> |
96 | 97 | </div> |
97 | 98 |
|
|
146 | 147 |
|
147 | 148 | private async Task CreateInstanceByConstructorFunction() |
148 | 149 | { |
149 | | - var dogRef = await JSRuntime.InvokeNewAsync("Dog", ["Igor"]); |
| 150 | + var dogRef = await JSRuntime.InvokeNewAsync("Dog", "A dog"); |
150 | 151 | InstanceMessage = await dogRef.InvokeAsync<string>("bark"); |
151 | 152 | } |
152 | 153 |
|
153 | 154 | private async Task CreateInstanceByClassConstructor() |
154 | 155 | { |
155 | | - var catRef = await JSRuntime.InvokeNewAsync("Cat", ["Whiskers"]); |
| 156 | + var catRef = await JSRuntime.InvokeNewAsync("Cat", "A cat"); |
156 | 157 | InstanceMessage = await catRef.InvokeAsync<string>("meow"); |
157 | 158 | } |
158 | 159 |
|
|
166 | 167 | await JSRuntime.SetValueAsync<int>("testObject.getOnlyProperty", 123); |
167 | 168 | } |
168 | 169 |
|
| 170 | + private async Task ChangeInstanceMethodWithFunctionReference() |
| 171 | + { |
| 172 | + var dogRef = await JSRuntime.InvokeNewAsync("Dog", "A dog"); |
| 173 | + var dogFuncRef = await dogRef.GetValueAsync<IJSObjectReference>("bark"); |
| 174 | + var catRef = await JSRuntime.InvokeNewAsync("Cat", "A cat"); |
| 175 | + await catRef.SetValueAsync("meow", dogFuncRef); |
| 176 | + InstanceMessage = await catRef.InvokeAsync<string>("meow"); |
| 177 | + } |
| 178 | + |
169 | 179 | class TestObjectModel |
170 | 180 | { |
171 | 181 | public int Num { get; set; } |
|
0 commit comments