React Doctor
492 rules react-doctor@0.9.14
Complete effective rule inventory.
Rules
No enabled React Doctor rules match this search.
-
react-doctor/r3f-no-ignored-basic-material-propertiesUse meshStandardMaterial or meshPhysicalMaterial when a mesh needs roughness or metalness
: warning in React projects -
react-doctor/r3f-no-ignored-linewidthUse Drei Line for wide GPU-rendered lines, or leave linewidth at one pixel
: warning in React projects -
react-doctor/r3f-no-imperative-attach-of-managed-refLet R3F attach objects referenced by JSX. Do not add or attach the same ref.current imperatively
: error in React projects -
react-doctor/r3f-no-inline-primitive-objectCreate or clone the Three.js object once outside render, or memoize it, before passing it to <primitive>
: warning in React projects -
react-doctor/r3f-no-inline-resource-propCreate the Three.js geometry or material once at module scope, in lazy state, or with useMemo before passing it as an R3F resource prop
: warning in React projects -
react-doctor/r3f-no-internal-importsImport from @react-three/fiber or one of its documented public entry points instead of a dist or src implementation path
: warning in React projects -
react-doctor/r3f-no-manual-canvas-resizeLet Canvas and its ResizeObserver own renderer sizing instead of registering a window resize loop
: warning in React projects -
react-doctor/r3f-no-mutate-loader-cacheClone the loaded object or resource before mutating it
: warning in React projects -
react-doctor/r3f-no-mutate-uniform-prop-source-in-use-frameMutate materialRef.current.uniforms inside useFrame instead of the object passed to uniforms
: error in React projects -
react-doctor/r3f-no-mutating-pointer-event-dataCopy shared pointer-event vectors before applying local-space transforms or other mutations
: warning in React projects -
react-doctor/r3f-no-new-in-use-frameAllocate Three.js objects once in module scope, useMemo, or useRef and mutate the reusable instance inside useFrame
: warning in React projects -
react-doctor/r3f-no-normalized-float-buffer-attributeUse normalized only with integer buffer data; floating-point attributes are already represented directly
: warning in React projects -
react-doctor/r3f-no-null-loader-inputConditionally render a child component that calls the loader hook only after it has a real asset URL
: warning in React projects -
react-doctor/r3f-no-object-pointer-captureCall pointer-capture methods on the R3F event target or currentTarget, not object or eventObject
: error in React projects -
react-doctor/r3f-no-recursive-raf-with-use-frameUse R3F's useFrame subscription as the component's single animation loop instead of starting a second browser or renderer loop
: warning in React projects -
react-doctor/r3f-no-shader-configuration-mutation-in-use-frameKeep shader source and program configuration stable; animate materialRef.current.uniforms.*.value instead
: error in React projects -
react-doctor/r3f-no-shadows-on-unsupported-lightUse a directional, point, or spot light when the scene needs a shadow-casting light
: warning in React projects -
react-doctor/r3f-no-state-in-pointer-moveKeep pointer-move previews in Three.js refs or transient state and publish one semantic React update when the interaction commits
: warning in React projects -
react-doctor/r3f-no-state-in-use-frameMutate Three.js refs or an external transient store inside useFrame; reserve React state for guarded, infrequent transitions
: warning in React projects -
react-doctor/r3f-no-sync-readback-in-use-frameMove readback to a discrete or serialized async path and reuse the latest completed result during frames
: warning in React projects -
react-doctor/r3f-no-unstable-argsKeep reference-valued constructor arguments stable with module scope or useMemo so React Three Fiber does not reconstruct and dispose the Three.js object on a later render
: warning in React projects -
react-doctor/r3f-no-use-frame-dependency-arrayRemove the dependency array. Pass a numeric render priority on R3F v9, or supported scheduling options on R3F v10
: warning in React projects -
react-doctor/r3f-prefer-gpu-instanced-animationMove repeated per-instance transform motion into instanced attributes, a vertex shader, or GPU simulation
: warning in React projects -
react-doctor/r3f-prefer-gpu-position-animationAnimate repeated vertex or particle positions in a vertex shader, instanced attribute, or GPU simulation instead of rewriting them on the CPU every frame
: warning in React projects -
react-doctor/r3f-prefer-instanced-meshRender repeated meshes that share geometry and material with <instancedMesh> so they can use one draw call
: warning in React projects -
react-doctor/r3f-prefer-use-loaderLoad render resources with R3F useLoader so Suspense caching can deduplicate them and a parent error boundary can surface failures
: warning in React projects -
react-doctor/r3f-require-animation-mixer-updateCall mixer.update(delta) from useFrame after starting mixer actions
: error in React projects -
react-doctor/r3f-require-data-texture-updateSet texture.needsUpdate to true after changing data-texture pixels
: error in React projects -
react-doctor/r3f-require-dynamic-buffer-usageSet usage={DynamicDrawUsage} on buffer attributes uploaded from useFrame
: warning in React projects -
react-doctor/r3f-require-environment-for-metalProvide scene environment lighting or an envMap for strongly metallic standard and physical materials
: warning in React projects -
react-doctor/r3f-require-frame-deltaScale incremental transforms and interpolation by useFrame delta, use delta-aware damping, or assign from absolute time
: warning in React projects -
react-doctor/r3f-require-global-effect-cleanupRegister addEffect, addAfterEffect, and addTail from an effect and return the exact disposer so remounts do not retain global render-loop callbacks
: warning in React projects -
react-doctor/r3f-require-instanced-buffer-updateAfter setMatrixAt, setColorAt, or setMorphAt, set the matching instance buffer's needsUpdate flag to true
: error in React projects -
react-doctor/r3f-require-lighting-for-pbrAdd a light, scene environment, material envMap, lightMap, or intentional emissive source for PBR materials
: warning in React projects -
react-doctor/r3f-require-lit-material-normalsAttach a normal BufferAttribute or compute vertex normals before applying a normal map to custom geometry
: error in React projects -
react-doctor/r3f-require-owned-texture-cleanupDispose locally constructed textures in a React effect cleanup
: warning in React projects -
react-doctor/r3f-require-position-buffer-updateSet the position BufferAttribute needsUpdate flag after changing its values on the CPU
: error in React projects -
react-doctor/r3f-require-projection-matrix-updateCall camera.updateProjectionMatrix() after imperatively changing projection properties so Three.js renders the new frustum
: error in React projects -
react-doctor/r3f-require-render-target-resetCall gl.setRenderTarget(null) on every useFrame path after rendering to an offscreen target
: error in React projects -
react-doctor/r3f-require-render-with-positive-priorityRender the scene or composer from the positive-priority useFrame subscription, or use a non-positive priority to keep automatic rendering enabled
: warning in React projects