codesandbox / codesandbox/codesandbox-client

Adding ref to an svgr component

Open
#6,615 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
13.6k
Forks
2.4k
Avg merge
6d 19h
Merged PRs (30d)
2

Description

🐛 bug report

Preflight Checklist

  • I have read the Contributing Guidelines for this project.
  • I agree to follow the Code of Conduct that this project
    adheres to.
  • I have searched the issue tracker for an issue that matches the one I want
    to file, without success.

Description of the problem

when importing an svgr component in a react sandbox, you cannot pass a ref to that component because it doesn't use forwardRef internally to generate it. This differs from the default behavior in react-scripts.

How has this issue affected you? What are you trying to accomplish?

Add a ref to an SVG component in order to add a tooltip to it.

To Reproduce
import { render } from 'react-dom';
import { ReactComponent as SvgComponent } from './path/to/file.svg';

const App = () => (<SvgComponent ref={ref => (window.testingRef=ref)} />);

render(<App />, document.getElementById('root'));

the above produces an error in the console and doesn't invoke the ref function.

I believe this should be the default behavior like it is in CRA, however if decided against it, adding support for a global .svgrrc file would also help as we would be able to add our own custom configuration if needed.

Link to sandbox: link (optional)
Your Environment
Software Name/Version
Сodesandbox
Browser
Operating System

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file or test is named. Start by reproducing the provided React sandbox example with an imported SVG component, then trace how SVGR generates that component; done means the ref callback is invoked when passed to SvgComponent, matching the stated React behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, react
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.