小编Dyl*_*tle的帖子

使用 HeadlessUI 以编程方式关闭所有披露

我有一个在页面加载时<Disclosure>设置的列表(大约 10 个)。defaultOpen

我想通过单击按钮以编程方式关闭披露。例如,按钮会读取内容close all,单击后信息披露将关闭。

const [open, setOpen] = useState(true)

const close = () => {setOpen(false)}

<button onClick={close}>Close All</button>

<Disclosure defaultOpen>
  <Disclosure.Button>Open/Close</Disclosure.Button>
  <Disclosure.Panel>
    <p>disclosure1</p>
  </Disclosure.Panel>
</Disclosure>

<Disclosure defaultOpen>
  <Disclosure.Button>Open/Close</Disclosure.Button>
  <Disclosure.Panel>
    <p>disclosure2</p>
  </Disclosure.Panel>
</Disclosure>

<Disclosure defaultOpen>
  <Disclosure.Button>Open/Close</Disclosure.Button>
  <Disclosure.Panel>
    <p>disclosure3</p>
  </Disclosure.Panel>
</Disclosure>
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?从我发现的文档中:

      <Disclosure.Panel>
        {({ close }) => (
          <button
            onClick={async () => {
              await fetch('/accept-terms', { method: 'POST' })
              close()
            }}
          >
            Read and accept
          </button>
        )}
      </Disclosure.Panel>
Run Code Online (Sandbox Code Playgroud)

但如果不手动单击,我找不到其他任何东西来关闭它们<Disclosure.Button/>

javascript reactjs headless-ui

5
推荐指数
0
解决办法
978
查看次数

如何在switch语句中更改指针.错误:从'const char*'到'char'的转换无效

我在C中使用emacs的代码,其中我已经收到了一个输入,如果输入使用以下任何字符我想用其余的代码替换它们.但我收到一个错误.我究竟做错了什么?

void askQuestion(char text[])
{
   for (char * p = text; *p; p++)
   {
      switch (*p)
      {
         case '<':
            *p = "";
            break;
         case '>':
            *p = "";
            break;
         case '#':
            *p = "\n";
            break;
         case '{':
            *p = " \"";
            break;
         case '}':
            *p = "\" ";
            break;
         case '[':
            *p = " \'";
            break;
         case ']':
            *p = "\' ";
            break;
      }

      cout << *p;
   }

}
Run Code Online (Sandbox Code Playgroud)

它给了我错误

"从'const char*'无效转换为'char'

如何修改此代码以更改指针?我只是希望能够打印出*p替换值.我该怎么做呢?或者你会建议我做些不同的工作?或者换句话说,我怎么能写这个程序来修改输入.

c++ pointers

1
推荐指数
1
解决办法
169
查看次数

如果在某些页面上运行脚本 - rails

在每个页面加载上运行if语句来检查我是否应该运行脚本是不是一个坏主意.例如,我有一个非常长的javascript文件,只需要在使用表单时运行.但是目前在我的每个文件中我都包含了document.addEventListener("turbolinks:load", function()这意味着它会在每个页面加载时运行.

在我的脚本中,我很想在文件的开头写一个if语句,如下所示:

document.addEventListener("turbolinks:load", function() {
  controller = $('body').data('controller')
  action = $('body').data('action')
  if controller == foo && action == bar 
    runScripts();
  else
    return;
  function runscripts() {
    ...
Run Code Online (Sandbox Code Playgroud)

我仍然有点使用带有rails的javascript,所以我不知道另一种方式.有什么建议?

javascript if-statement controller ruby-on-rails

1
推荐指数
1
解决办法
891
查看次数

位置固定的元素不会粘附到位置设置为相对的父元素

我有一个侧边栏,其位置设置为相对:

.home-left-sidebar,
.home-right-sidebar {
  flex: 1;
  color: rgb(66, 66, 66);
  font-size: 17px;
  position: relative !important;
}
Run Code Online (Sandbox Code Playgroud)

它有一个设置为固定的子项:

.left-sidebar {
  position: fixed;
  right: 0;
}
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,孩子并没有粘在父 div 上,而是粘在了 body 上。

<div className='home-left-sidebar '>
  <LeftSidebar />
</div>
Run Code Online (Sandbox Code Playgroud)
<div className='left-sidebar'>
      <div className='left-sidebar-items'>
        <ul>
          <NavLink to='/home/popular'>
            <li>Home</li>
          </NavLink>
          <NavLink to='/home/new'>
            <li>Newest</li>
          </NavLink>
          <NavLink to='/home/likes'>
            <li>My Likes</li>
          </NavLink>
          <NavLink to='/home/user/posts'>
            <li>My Posts</li>
          </NavLink>
        </ul>
      </div>
    </div>
Run Code Online (Sandbox Code Playgroud)

我不知道我在这里做错了什么。

html css reactjs

0
推荐指数
1
解决办法
1702
查看次数