Alternar mostrar y ocultar componentes en ReactJs

He estado luchando por mostrar / ocultar componentes en ReactJs durante un par de días. Estoy tratando de mostrar el ("Escribir (bloques)", que debe ocultarse de la vista de forma predeterminada) y mostrarse cuando se hace clic en los enlaces "editar" (mientras se alterna ocultar / mostrar para los bloques "Leer") y ocultarlos cuando se hace clic en los botones "guardar" o "cancelar", me ocuparé de la función de guardar más tarde. Por ahora solo estoy tratando de mostrar / ocultar el componente basado en esto.

Abajo está mi código:

class ProfileSettings extends React.Component {

  render() {
    return (
      <div className="ProfileSettings">

        <SettingsBlock className="Names" label="Name" link="name">
          <p className="readOnlySettingField ReadNames">Hilal Agil<a href="#">Edit</a></p>

          <div className="WriteNames">
            <SubBlock label="First Name" placeholder="First Name" />
            <SubBlock label="Middle Name" placeholder="Middle Name" />
            <SubBlock label="Last Name" placeholder="Last Name" />
            <p className="notice"><strong>Please note:</strong> You wont be able to change your name within the next 30 days. 
            Make sure not to add any unusual capitalization, punctuation, characters or random words.</p>
            <button className="button small fill primary">Save Changes</button>
            <button className="button small default">Cancel</button>
          </div>
        </SettingsBlock>

        <SettingsBlock label="Username" link="username">

          <p className="readOnlySettingField ReadUsername">www.squelo.com/hilarl<a href="#">Edit</a></p>

          <div className="WriteUsername">
            <p className="notice url">squelo.com/hilarl</p>
            <Input placeholder="Username" classes="col-md-7" />
            <p className="notice"><strong>Please note:</strong> Your username can only be changed once and should include your authentic name.</p>
            <button className="button small fill primary">Save Changes</button>
            <button className="button small default">Cancel</button>
          </div>
        </SettingsBlock>

        <SettingsBlock label="Email" link="email">
          <p className="readOnlySettingField ReadEmail">[email protected]<a href="#">Edit</a></p>

          <div className="WriteEmail">
            <Input placeholder="Email" classes="col-md-9" />
            <p className="notice"><strong>Please note:</strong> Your username can only be changed once and should include your authentic name.</p>
            <button className="button small fill primary">Save Changes</button>
            <button className="button small default">Cancel</button>
          </div>
        </SettingsBlock>

        <SettingsBlock className="Password" label="Password" link="password">
          <p className="readOnlySettingField ReadPassword">Password last changed over a year ago<a href="#">Edit</a></p>

          <div className="WritePassword">
            <SubBlock label="Current" placeholder="Current" />
            <SubBlock label="New" placeholder="New" />
            <SubBlock label="Re-type new" placeholder="Re-type new" />
            <p className="notice"><a href="#">Forgot password?</a></p>
            <button className="button small fill primary">Save Changes</button>
            <button className="button small default">Cancel</button>
          </div>
        </SettingsBlock>
      </div>
    );
  }

}

Sería genial si alguien pudiera dar un ejemplo de cómo lograr esto en esta situación. He estado perdiendo mucho tiempo resolviendo esto yo mismo y esta es la primera vez que uso ReactJs en un proyecto. Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta