1
1
<!-- AUTO-GENERATED-CONTENT:START (HEADER) -->
2
-
3
2
# solid/reactivity
4
-
5
3
Enforce that reactivity (props, signals, memos, etc.) is properly used, so changes in those values will be tracked and update the view as expected.
6
4
This rule is ** a warning** by default.
7
5
@@ -149,11 +147,10 @@ warnings can be safely ignored.
149
147
</details> -->
150
148
151
149
<!-- AUTO-GENERATED-CONTENT:START (OPTIONS) -->
152
-
150
+
153
151
<!-- AUTO-GENERATED-CONTENT:END -->
154
152
155
153
<!-- AUTO-GENERATED-CONTENT:START (CASES) -->
156
-
157
154
## Tests
158
155
159
156
### Invalid Examples
@@ -166,41 +163,41 @@ const Component = () => {
166
163
console .log (signal ());
167
164
return null ;
168
165
};
169
-
166
+
170
167
const Component = () => {
171
168
const [signal ] = createSignal (5 );
172
169
console .log (signal ());
173
170
return < div> {signal ()}< / div> ;
174
171
};
175
-
172
+
176
173
const Component = (props ) => {
177
174
const value = props .value ;
178
175
return < div> {value ()}< / div> ;
179
176
};
180
-
177
+
181
178
const Component = (props ) => {
182
179
const { value: valueProp } = props;
183
180
const value = createMemo (() => valueProp || " default" );
184
181
return < div> {value ()}< / div> ;
185
182
};
186
-
183
+
187
184
const Component = (props ) => {
188
185
const valueProp = props .value ;
189
186
const value = createMemo (() => valueProp || " default" );
190
187
return < div> {value ()}< / div> ;
191
188
};
192
-
189
+
193
190
const Component = (props ) => {
194
191
const derived = () => props .value ;
195
192
const oops = derived ();
196
193
return < div> {oops}< / div> ;
197
194
};
198
-
195
+
199
196
function Component (something ) {
200
197
console .log (something .a );
201
198
return < div / > ;
202
199
}
203
-
200
+
204
201
const Component = () => {
205
202
const [signal ] = createSignal ();
206
203
const d = () => {
@@ -209,7 +206,7 @@ const Component = () => {
209
206
};
210
207
d (); // not ok
211
208
};
212
-
209
+
213
210
const Component = () => {
214
211
const [signal ] = createSignal ();
215
212
function d () {
@@ -218,7 +215,7 @@ const Component = () => {
218
215
}
219
216
d (); // not ok
220
217
};
221
-
218
+
222
219
const Component = () => {
223
220
const [signal ] = createSignal ();
224
221
const d = () => {
@@ -231,7 +228,7 @@ const Component = () => {
231
228
};
232
229
d (); // not ok
233
230
};
234
-
231
+
235
232
const Component = () => {
236
233
const [signal1 ] = createSignal ();
237
234
const d = () => {
@@ -245,7 +242,7 @@ const Component = () => {
245
242
e (); // not ok, signal2 is in scope
246
243
};
247
244
};
248
-
245
+
249
246
const Component = () => {
250
247
const [signal ] = createSignal ();
251
248
const foo = () => {
@@ -258,75 +255,79 @@ const Component = () => {
258
255
};
259
256
bar (); // not ok
260
257
};
261
-
258
+
262
259
const Component = () => {
263
260
createSignal ();
264
261
};
265
-
262
+
266
263
const Component = () => {
267
264
const [, setSignal ] = createSignal ();
268
265
};
269
-
266
+
270
267
const Component = () => {
271
268
createMemo (() => 5 );
272
269
};
273
-
270
+
274
271
const Component = () => {
275
272
const [signal ] = createSignal ();
276
273
return < div> {signal}< / div> ;
277
274
};
278
-
275
+
279
276
const Component = () => {
280
277
const memo = createMemo (() => 5 );
281
278
return < div> {memo}< / div> ;
282
279
};
283
-
280
+
284
281
const Component = () => {
285
282
const [signal ] = createSignal ();
286
283
return < button type= {signal}> Button< / button> ;
287
284
};
288
-
285
+
289
286
const Component = () => {
290
287
const [signal ] = createSignal ();
291
288
return < div> {signal}< / div> ;
292
289
};
293
-
290
+
294
291
const Component = () => {
295
292
const [signal ] = createSignal (" world" );
296
293
const memo = createMemo (() => " hello " + signal);
297
294
};
298
-
295
+
299
296
const Component = () => {
300
297
const [signal ] = createSignal (" world" );
301
298
const memo = createMemo (() => ` hello ${ signal} ` );
302
299
};
303
-
300
+
304
301
const Component = () => {
305
302
const [signal ] = createSignal (5 );
306
303
const memo = createMemo (() => - signal);
307
304
};
308
-
305
+
309
306
const Component = (props ) => {
310
307
const [signal ] = createSignal (5 );
311
308
const memo = createMemo (() => props .array [signal]);
312
309
};
313
-
310
+
314
311
const Component = (props ) => {
315
312
return < div onClick= {props .onClick } / > ;
316
313
};
317
-
314
+
318
315
const Component = (props ) => {
319
316
createEffect (props .theEffect );
320
317
};
321
-
318
+
322
319
const Component = (props ) => {
323
- return < SomeContext .Provider value= {props .value }> {props .children }< / SomeContext .Provider > ;
320
+ return (
321
+ < SomeContext .Provider value= {props .value }>
322
+ {props .children }
323
+ < / SomeContext .Provider >
324
+ );
324
325
};
325
-
326
+
326
327
const Component = (props ) => {
327
328
return < SomeProvider value= {props .value }> {props .children }< / SomeProvider> ;
328
329
};
329
-
330
+
330
331
const Component = (props ) => {
331
332
const [signal ] = createSignal ();
332
333
return (
@@ -335,54 +336,57 @@ const Component = (props) => {
335
336
< / SomeContext .Provider >
336
337
);
337
338
};
338
-
339
+
339
340
const owner = getOwner ();
340
341
const [signal ] = createSignal ();
341
342
createEffect (() => runWithOwner (owner, () => console .log (signal ())));
342
-
343
+
343
344
function Component () {
344
345
const owner = getOwner ();
345
346
const [signal ] = createSignal ();
346
347
createEffect (() => runWithOwner (owner, () => console .log (signal ())));
347
348
}
348
-
349
+
349
350
const [count , setCount ] = createSignal (0 );
350
351
createEffect (async () => {
351
352
await Promise .resolve ();
352
353
console .log (count ());
353
354
});
354
-
355
+
355
356
const [photos , setPhotos ] = createSignal ([]);
356
357
createEffect (async () => {
357
- const res = await fetch (" https://jsonplaceholder.typicode.com/photos?_limit=20" );
358
+ const res = await fetch (
359
+ " https://jsonplaceholder.typicode.com/photos?_limit=20"
360
+ );
358
361
setPhotos (await res .json ());
359
362
});
360
-
363
+
361
364
const [signal ] = createSignal (" red" );
362
365
css`
363
366
color: ${ signal} ;
364
367
` ;
365
-
368
+
366
369
const [signal ] = createSignal (" red" );
367
370
const f = () => signal ();
368
371
css`
369
372
color: ${ f} ;
370
373
` ;
371
-
374
+
372
375
function createCustomStore () {
373
376
const [store , updateStore ] = createStore ({});
374
377
return mapArray ([], (item ) => store .path .to .field );
375
378
}
376
-
379
+
377
380
const [array ] = createSignal ([]);
378
381
const result = mapArray (array, (item , i ) => {
379
382
i ();
380
383
});
381
-
384
+
382
385
const [array ] = createSignal ([]);
383
386
const result = indexArray (array, (item ) => {
384
387
item ();
385
388
});
389
+
386
390
```
387
391
388
392
### Valid Examples
@@ -716,7 +720,6 @@ function Component(props) {
716
720
}
717
721
718
722
```
719
-
720
723
<!-- AUTO-GENERATED-CONTENT:END -->
721
724
722
725
## Implementation
0 commit comments